Ковалёв Марк
Краткое резюме
Родился в 1978 в г. Новосибирске. Окончил Донецкий Институт Искусственного Интеллекта на Украине, где сейчас и нахожусь.
С 13 лет тесно связан с информационными технологиями. В данный момент работаю инженером-программистом в крупной телекоммуникацонной
компании. Выполняю обязанности DBA.
Неспешно ищу работу в столице на должности ведущего инженера.
Contact
- ICQ: 142029718
- AOL:
- Skype:
- Jabber:
Текущие проекты
- Система оперативного формирования отчётов Pharaon
- Система оперативного экспорта данных из Oracle в сторонние СУБД (Java, Native MSWin, Native RHEL)
- Пакет поддержки нестандартных графических форматов файлов для интернет-браузеров MSIE, Opera, Fire Fox? (Подборка Java-апплетов)
- Система Book-Storage. (Книгохранилище. Двухзвенка. Реализована на Java+Oracle.)
- Система пространственной визуализации информации, полученой с датчиков УЗИ.
- Библиотека компонент для конструирования нейронных сетей J (Java)
В планах
- Изучить язык программирования 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.1.5 SQLJ
SQLJ – промышленный стандарт компоновки статического SQL кода для Java-Stored процедур на server-side. Его можно
рассматривать, как макрорасширение Java.
1.2 Postgre SQL? (pg73jdbc3.jar)
Кратко о создании базы. Для начала необходимо создать кластер (не путать с Оракл-кластером) – это
набор файловых структур, необходимых для запуска экземпляра базы, который называется postmaster.
Формат строки подлключения | Комментарий |
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");
1.4 Microsoft SQL Server 2000/2005
Ну, как не обойти стороной такую штуку, как MS :). Можно сколько угодно смеятся, тыча пальцем
в серверные операционки знаменитого вендора, однако ни у кого не хватит сил отрицать тот факт,
что MS-SQL входит в десятку лучших OLTP-серверов в мире. Ну что-ж воздадим ему маленькую
почесть.
1.5 Borland Interbase
1.6 My SQL?
1.7 Intersystems Cache
1.8 Hypersonic SQL? (HSQL)
1.9 Derby
Delphi
Драйверы доступа к БД
1. ODAC (Oracle Data Access Component)
Oracle
Типовые конфигурации и сценарии
Oracle 9 (WIN)
listener.ora
tnanames.ora
Oracle 10g (RHEL)
Oracle 10g (HP-UX) RAC
# TNS-name для четырёхузлового кластера с балансом нагрузки и устойчивостью к сбоям
ORCL =
(DESCRIPTION =
(LOAD_BALANCE = ON)
(FAILOVER = ON)
(ADDRESS_LIST =
(PROTOCOL = TCP)(HOST = 192.168.0.1 )(PORT = 1521))
(PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
(PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
(PROTOCOL = TCP)(HOST = 192.168.0.4 )(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl)
)
)
Использование Exp DP?
Использование RMAN (Oracle 10g)
Оптимизация производительности операций экспорта 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%.