Ковалёв Марк
Краткое резюме
Родился в 1978 в г. Новосибирске. Окончил Донецкий Институт Искусственного Интеллекта на Украине, где сейчас и нахожусь.
С 13 лет тесно связан с информационными технологиями. В данный момент работаю инженером-программистом в крупной телекоммуникацонной
компании. Выполняю обязанности DBA.
Неспешно ищу работу в столице на должности ведущего инженера.
Contact
- Email: lordmayton@mail.ru
- ICQ: 142029718
Текущие проекты
- Многопользовательская сетевая игра Hog Wars? (платформа Java)
- Система оперативного экспорта данных из Oracle в сторонние СУБД (Java, Native MSWin, Native RHEL)
- Пакет поддержки нестандартных графических форматов файлов для интернет-браузеров MSIE, Opera, Fire Fox? (Подборка Java-апплетов)
- Система Book-Storage. (Книгохранилище. Двухзвенка. Реализована на Java+Oracle.)
- Система пространственной визуализации информации, полученой с датчиков УЗИ, для медицины.
В планах
- Изучить язык программирования Digital Mars D с целью практического применения.
- Освоить основы ФП с целью... хм... ну... просто так! Почему-бы и нет?
- Создать иерархическую СУБД файло-подобного типа с целью практического применения в промышленности.
Java
Использование JDBC драйверов
1. Установление соедиение с использованием JDBC
1.1 Oracle (odbc14.jar)
Данным драйвером комплектуется дистрибутив Oracle, начиная с версии 9. Старая номенклатура имен драйверов имела следующий вид classesXX.jar. Начиная с десятки, мы имеем odbc14.jar. Драйвер содержит полную реализацию протокола SQL*Net, а поэтому может классифицироватся как драйвер 4 типа. Его удобно применять в Веб-контейнерах Java для обеспечения 100% переносимости софта между платформами. Тем не менее, поддержка OCI по прежнему остается в силе (см. таблицу).
Формат строки подлключения | Комментарий | Тип |
jdbc:oracle:thin:@<host>:<port>:<sid> | | thin |
jdbc:oracle:thin:<user>/<password>@<host>:<sid> | порт=1521 | thin |
jdbc:oracle:thin:<user>/<password>@<host>:<port>:<sid> | | thin |
jdbc:oracle:oci8:@ | | oci |
jdbc:oracle:oci8:<user>/<password>@ | База по умолчанию | oci |
jdbc:oracle:oci8:@(description=(address=(host=<host>) | С использованием tnsnames oci (protocol=tcp)(port=1521))(connect_data=(sid=<sid>))) entry; | oci |
1.1.1 Настройка параметров окружения (опционально)
- Добавить в переменную CLASSPATH путь к файлу JDBC драйвера из Oracle.
- Для Windows CLASSPATH=%CLASSPATH%;%ORACLE_HOME%\jdbc\lib\ojdbc14.jar
- Для *nix CLASSPATH=CLASSPATH$;ORACLE_HOME$/jdbc/lib/ojdbc14.jar
1.1.2 C использованием OCI8:
import java.sql.*;
import java.io.*;
import java.lang.*;
import oracle.sql.*;
import oracle.jdbc.*;
String user = “scott”;
String password = “tiger”;
String database = “orcl”;
Driver Manager?.registerDriver(new oracle.jdbc.OracleDriver());
Connection Conn=
Driver Manager?.getConnection("jdbc:oracle:oci8:@"+database,username,password);
1.1.3 С использованием thin:
import java.sql.*;
import java.io.*;
import java.lang.*;
import oracle.sql.*;
import oracle.jdbc.*;
String user = “scott”;
String password = “tiger”;
String database = “orcl”;
Driver Manager?.registerDriver(new oracle.jdbc.OracleDriver());
Connection Conn=
Driver Manager?.getConnection("jdbc:oracle:thin:"+user+"/"+password+"@//"+host+":"+port+"/"+service);
1.1.4 Использование bind-переменных
Для массовых операций (загрузка данных) при работе с Oracle-JDBC желательно явно указать изменяющиеся части запросов insert, update.
Это связано с тем, что Oracle, при выполнении синтаксического разбора запроса строит индивидуальный план исполнения. Для разовой
операции, время построения плана незначимо, а для массовых запросов на вставку данных, оптимизатор будет тратить много времени
на анализ очередной строки DML команд. Ниже приводится пример использования bind-переменной.
.....
1.2 Postgre SQL? (pg73jdbc3.jar)
Формат строки подлключения | Комментарий |
jdbc:postgresql:<database> | для локального хоста |
jdbc:postgresql://<host>/<database> | по умолчанию порт= |
jdbc:postgresql://<host>:<port>/<database> | |
Один из вариантов подключения
Class.forName(«org.postgresql.Driver»);
Connection Conn=
Driver Manager?.getConnection("jdbc:postgresql:mybase?user=scott&password=tiger");
Oracle
Оптимизация производительности операций экспорта Oracle 9 i?
1. Активизируем листенер протокола IPC (Inperprocess Communication)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = MYBASE))
)
......
)
)
2. В свойствах tnsnames указываем явно параметры
Session Data Unit (SDU)=32k и
Transmit Data Unit(TDU)=32k
ORCL =
(DESCRIPTION =
(SDU=32768)
(TDU=32768)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = MYKEY))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Полезный эффект от данной настройки проявляется при запуске утилит экспорта
локально (т.е. на физическом хосте БД или Standby БД). Опытным путем мной
был установлен факт повышения перформанса экспорта на 40%.