powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORACLE|+OCI+PERFORMANCE
4 сообщений из 4, страница 1 из 1
ORACLE|+OCI+PERFORMANCE
    #32166389
ARufanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть процедуры:
P_CREATE AS BEGIN
INSERT INTO TEST(...) VALUES(...);
END;
P_MULTI_CREATE AS BEGIN
LOOP V 1...100 000
P_CREATE();
END LOOP;
END;
У меня есть вызов из OCI:
for(int i=0; i< 100 000;++i)
OCI вызов P_CREATE

Результаты работы:
ORACLE 1000записей/sec
OCI ~300записей/sec
Вопрос: возможно ли как нибудь увеличить скорость вызова процедуры. Есть ли другие альтернативы OCI. Я слышал, что с помощью NET8 можно на уровне TCP/IP сделать вызовы более быстрым. Не мог бы кто нибудь посказать как я мог бы увеличить производительность, желательно с ссылкой на документацию ORACLE.
...
Рейтинг: 0 / 0
ORACLE|+OCI+PERFORMANCE
    #32166541
are
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
are
Гость
как аналог процедуре на oci - можно реализовать необходимую логику на java - тогда все телодвижения у тебя будут происходить на сервере и в одном с oracle адресном пространстве - в результате: производительность будет как у PL/SQL + та гибкость языка, который дает java...

наверное сейчас самый лучший подход к написанию следующий: ряды Фурье, сложные структуры данных (деревья, hash,...) писать на java, SQL, балковые операции,... - на PL/SQL


а гемороиться с OCI - можно, но зачем?
...
Рейтинг: 0 / 0
ORACLE|+OCI+PERFORMANCE
    #32166550
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно, зачем делается вызов PL/SQL процедуры. Пишите все на чистом ОCI. Используйте если возможно bulk-insert. Быстрее и мощнее чем ОСI в Оракле нет ничего.
...
Рейтинг: 0 / 0
ORACLE|+OCI+PERFORMANCE
    #32166567
Fedorchenko Aleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен с killed
1. Oracle декларирует, что OCI/OCCI являются CLI API, т.е. один вызов OCI метода равносилен вызову одного SQL/PL-SQL метода. Быстрее их нет ничего для соединения с Oracle.
2. Работа через внешние API всегда ведется медленнее, чем напрямую средствами СУБД. На один вызов метода OCI идет по сети запрос на сервер, его выполнение, получение ответа.

Может уж тогда написать вторую процедуру, в которую поместить цикл вставки новых строк в таблицу и вызывать его через OCI с передачей числа итераций? Хотя смысла в этом мало :)

При реальной вставке больших массивов надо пользовать bulk insert или loader (лучше в случае внешних данных из форматированного файла)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORACLE|+OCI+PERFORMANCE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]