|
|
|
ORACLE|+OCI+PERFORMANCE
|
|||
|---|---|---|---|
|
#18+
У меня есть процедуры: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 16:35:25 |
|
||
|
ORACLE|+OCI+PERFORMANCE
|
|||
|---|---|---|---|
|
#18+
как аналог процедуре на oci - можно реализовать необходимую логику на java - тогда все телодвижения у тебя будут происходить на сервере и в одном с oracle адресном пространстве - в результате: производительность будет как у PL/SQL + та гибкость языка, который дает java... наверное сейчас самый лучший подход к написанию следующий: ряды Фурье, сложные структуры данных (деревья, hash,...) писать на java, SQL, балковые операции,... - на PL/SQL а гемороиться с OCI - можно, но зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 18:09:02 |
|
||
|
ORACLE|+OCI+PERFORMANCE
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно, зачем делается вызов PL/SQL процедуры. Пишите все на чистом ОCI. Используйте если возможно bulk-insert. Быстрее и мощнее чем ОСI в Оракле нет ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 18:15:34 |
|
||
|
ORACLE|+OCI+PERFORMANCE
|
|||
|---|---|---|---|
|
#18+
Согласен с killed 1. Oracle декларирует, что OCI/OCCI являются CLI API, т.е. один вызов OCI метода равносилен вызову одного SQL/PL-SQL метода. Быстрее их нет ничего для соединения с Oracle. 2. Работа через внешние API всегда ведется медленнее, чем напрямую средствами СУБД. На один вызов метода OCI идет по сети запрос на сервер, его выполнение, получение ответа. Может уж тогда написать вторую процедуру, в которую поместить цикл вставки новых строк в таблицу и вызывать его через OCI с передачей числа итераций? Хотя смысла в этом мало :) При реальной вставке больших массивов надо пользовать bulk insert или loader (лучше в случае внешних данных из форматированного файла) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 18:31:30 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2774&tid=1990399]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 416ms |

| 0 / 0 |
