|
|
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
День добрый Коллеги! Вопрос - есть ли API DirectPath под Java ? к сожалению гугление не дало положительного результата - все ссылки на хинт /*+ APPEND */ и только. Неужели нет ничего ? ps: как на сях грузить через DirectPath уже разобрался, в тестах получил 250тыс зап в секунду, хочу получить подобные скорости и в Java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 06:51 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisa, а код где? На сях и на Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 11:52 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisaДень добрый Коллеги! Вопрос - есть ли API DirectPath под Java ? к сожалению гугление не дало положительного результата - все ссылки на хинт /*+ APPEND */ и только. Неужели нет ничего ? ps: как на сях грузить через DirectPath уже разобрался, в тестах получил 250тыс зап в секунду, хочу получить подобные скорости и в Java Как правильно вставить ArrayList в SQL таблицу ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 15:28 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
grasoff.netКак правильно вставить ArrayList в SQL таблицу ? это не то, я говорю про API те аналогично тому что есть на си см http://docs.oracle.com/cd/B19306_01/appdev.102/b14250/oci12obn.htm#i433129 и https://vrogier.github.io/ocilib/doc/html/group___ocilib_c_apidirect_path.html How to use direct path 1 : Create a direct path handle with OCI_DirPathCreate() 2 : Set (optional) some direct path load attributes 3 : Describe the columns to load with OCI_DirPathSetColumn() 4 : Populate data with OCI_DirPathSetEntry() 5 : Convert the data with OCI_DirPathConvert() 6 : Load the data into the database with OCI_DirPathLoad() 7 : Repeat step 4,5,6 + reset the stream with OCI_DirPathReset() until all rows has been loaded 8 : Commit the load with OCI_DirPathFinish() 9 : Free the direct path handle with OCI_DirPathFree() ну и скорости совсем другие те если обычными инсертами то потолок в районе 3500 записей в секунду а с DirectPath я получил 250тысяч ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 20:22 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisaте если обычными инсертами то потолок в районе 3500 записей в секунду есть инсерты пачками-пакетами. есть инсерты через перекачку файла в шару сервера и импорт целиком файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 20:29 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisaэто не то, я говорю про APIтам есть комментарий где-то, что directapi - это твой хинт append ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 22:19 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
Как я понимаю, доступа к Direct API, как этого хочет топик стартер - нет. Но по опыту из Oracle 8i, при достаточно большем Bulk Array + APPEND - скорость вполне приличная. Т.ч. такой уж надобности в Direct API на мой взгляд и нет. Диски (даже относительно приличные средние массивы) и сеть (1 Gbit ethernet) первыми становятся бутылочным горлышком. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 23:00 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
grasoff.netтам есть комментарий где-то, что directapi - это твой хинт append Занимался этим в 8i, тогда это было так. AFAIK даже для C никакой специальной поддержки Direct API не было. Дает ли какие либо приемушества собсветно Direct API из ссылки ТС - не знаю, не пользовался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 23:03 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisaДень добрый Коллеги! Вопрос - есть ли API DirectPath под Java ? к сожалению гугление не дало положительного результата - все ссылки на хинт /*+ APPEND */ и только. Неужели нет ничего ? ps: как на сях грузить через DirectPath уже разобрался, в тестах получил 250тыс зап в секунду, хочу получить подобные скорости и в Java в JDBC thin клиенте точно нет. а так - я бы посмотрел на конструкцию вида INSERT /*+ APPEND */ SELECT * FROM external_table где external_table - собственно внешняя таблица в виде .csv файла. это не совсем честный direct path insert, но это будет работать, и, кстати, довольно быстро, даже быстрее, чем через OCI вызовы от клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2017, 01:07 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
dbpatchгде external_table - собственно внешняя таблица в виде .csv файла. IMHO большой минус, что нужен доступ к серверу и его файловой системе. Это же админов пинать надо. Ну еще и не забывать после себя мусор с сервера удалять ))) По опыту, обычно до удаления мусора с сервера доходит только тогда, когда сервер уже в пред-коматозном состоянии ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 14:44 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevgrasoff.netтам есть комментарий где-то, что directapi - это твой хинт append Занимался этим в 8i, тогда это было так. AFAIK даже для C никакой специальной поддержки Direct API не было. Дает ли какие либо приемушества собсветно Direct API из ссылки ТС - не знаю, не пользовался. я же написал - получил 250тыс записей в секунду, imho DP себя оправдывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2017, 18:58 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
dbpatchnagisaДень добрый Коллеги! Вопрос - есть ли API DirectPath под Java ? к сожалению гугление не дало положительного результата - все ссылки на хинт /*+ APPEND */ и только. Неужели нет ничего ? ps: как на сях грузить через DirectPath уже разобрался, в тестах получил 250тыс зап в секунду, хочу получить подобные скорости и в Java в JDBC thin клиенте точно нет. а так - я бы посмотрел на конструкцию вида INSERT /*+ APPEND */ SELECT * FROM external_table где external_table - собственно внешняя таблица в виде .csv файла. это не совсем честный direct path insert, но это будет работать, и, кстати, довольно быстро, даже быстрее, чем через OCI вызовы от клиента. этот путь известен и он реально быстрый, но, не всегда удобный грубо говоря есть парсер который жрет что-то неформатное и грузит в случае с внешней таблицей потребуется сначала ее слепить а потом грузить. те потери времени и места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2017, 19:00 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisa, вам сюда авторСделал простой тест Вставка в таблицу поля (a,b,c: integer) 1 000 000 записей (все СУБД внутри виртуальной машины VirtualPC) MS SQL 2005 544сек ORACLE 10 100сек CACHE 2009.1 через интерфейс Objects 70сек CACHE 2009.1 через интерфейс SQL 45сек CACHE 2009.1 через доступ к глобалям 7сек У кого есть какие комментарии? У меня вопрос - почему такое отставание MSSQL (Он при работе все время обращается к винту) ? Быстрое создание записей в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2017, 23:11 |
|
||
|
Java и API DirectPath Oracle ?
|
|||
|---|---|---|---|
|
#18+
nagisaя же написал - получил 250тыс записей в секунду, imho DP себя оправдывает Ну если очень нужно.... берем в руки C и Java™ Native Interface ))) As far as I know, в JDBC, даже в расширениях, такого пока нет. Может когда нибудь и допилят. Если есть саппорт, можно на металинке для порядка спросить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 00:46 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39381082&tid=2123258]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 185ms |
| total: | 294ms |

| 0 / 0 |
