|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
Доброго дня господа ! Имею использование интерфейса OdciIndex Хотелось бы использовать пакетную вставку данных Static Function OdciIndexInsert (iA Sys.OdciIndexInfo, RidList Sys.OdciRidList, NewValList Sv_OdciVarchar2List , Env Sys.OdciEnv) Return Number Результат консоли прилагаю -------------------------- Drop Create Insert row Insert array= 200 Insert array= 55 Insert array= Last record 45 Execute -------------------------- Возникли вопросы - великие гуру подскажите если сталкивались 1.Чем и где регулируеться размер промежуточных массивов = 200 и 55 2.Как определить последную запись или последний массив (=45 записей) 3.Хотел бы использовать объектный тип Sv_Varchar2 в качестве выражения индекса, база не находит сигнатуры функции и переходит в режим вставки одной записи. Где ошибка ? Для реализации пункта 3 - необходимо ПЕРЕремить 5-ть строк в коде Заранее благодарен ! Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 12:46 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
Доброго дня господа Так понял - вопрос некорректно поставлен ? Или механизм интерфейса несколько недоделан ? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 10:43 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
HOME_X 1.Чем и где регулируеться размер промежуточных массивов = 200 и 55 в 11g вроде как билось 200 + 53, в современных версиях 200+55, что вообще выводит на магическую цифру 256. Но в деталях расскажут только злые спецы по internals, и то если раскопали. HOME_X 2.Как определить последную запись или последний массив (=45 записей) С точки зрения структуры индекса результат пакетной вставки ничем не должен отличаться от вставки того же набора записей по одной. Как следствие, подобный метод не требуется. HOME_X 3.Хотел бы использовать объектный тип Sv_Varchar2 в качестве выражения индекса, база не находит сигнатуры функции и переходит в режим вставки одной записи. Где ошибка ? Нет ошибки, Ваш код скомпилировался и отработал. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 12:53 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 12:53 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
HOME_X1.Чем и где регулируеться размер промежуточных массивов = 200 и 55 200 это _domain_index_dml_batch_size Тот же код с _domain_index_dml_batch_size = 50 показывает след вывод: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
255 это ограничение на размер массива DML операций (в данном случае, вставки, QMI, redo opcode 11.11). Отключить пакетную вставку можно через _kdt_buffering=false. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 15:01 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
SeaGate 200 это _domain_index_dml_batch_size ... 255 это ограничение на размер массива DML операций (в данном случае, вставки, QMI, redo opcode 11.11). Отключить пакетную вставку можно через _kdt_buffering=false. Спасибо, записал в склерозник. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 15:35 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
andrey_anonymous Нет ошибки, Ваш код скомпилировался и отработал. Доброго дня господа ! Вы хотите сказать что мой код с пользовательским типом Sv_Varchar2 работает в пакетном режиме (у меня в режиме одиночной вставки) ? Уточните Вашу версию - моя 19С Спасибо P.S. - может там что-то донастроить надо ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 23:29 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
SeaGate _domain_index_dml_batch_size = 50 Принято - спасибо ! SeaGate Отключить пакетную вставку можно через _kdt_buffering=false. Принято - спасибо ! SeaGate 255 это ограничение на размер массива DML операций (в данном случае, вставки, QMI, redo opcode 11.11). Здесь вопрос - это системное ограничение - оно НЕУПРАВЛЯЕМОЕ ? Т.е. _domain_index_dml_batch_size <=255 - верно понял ? Больше нельзя ? SeaGate SQL> insert /*+ opt_param('_kdt_buffering' 'false')*/into Sv_Test_Table Принято - спасибо ! Это некорректно сформулированный вопрос, кмк. С точки зрения структуры индекса результат пакетной вставки ничем не должен отличаться от вставки того же набора записей по одной. Как следствие, подобный метод не требуется. ГЛАВНЫЙ ВОПРОС !!!! Я хотел реализовать вставку записей индекса одной транзакцией Т.е. событие по вставке одной записи или событие по пакетной вставке - пишут указатели во временной массив - и как только процесс заканчивается. Делаю перенос в базовую таблицу В обоих вариантах нужен ФЛАГ что запись последная и начат транзакцию переноса Как реализовать этот момент ? У меня достаточнаая большая таблица и постоянные execute immediate - будут тормозить загрузку ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 23:49 |
|
OdciIndex - Array вставка объектного типа
|
|||
---|---|---|---|
#18+
HOME_X andrey_anonymous Нет ошибки, Ваш код скомпилировался и отработал. Доброго дня господа ! Вы хотите сказать что мой код с пользовательским типом Sv_Varchar2 работает в пакетном режиме (у меня в режиме одиночной вставки) ? Уточните Вашу версию - моя 19С Спасибо P.S. - может там что-то донастроить надо ? P.S. Вы когда запускали ПЕРЕремили 5-ть строк ??? Это было спец. ремарка для другого варианта ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 00:26 |
|
|
start [/forum/topic.php?fid=52&msg=40133218&tid=1879493]: |
0ms |
get settings: |
18ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
232ms |
get tp. blocked users: |
2ms |
others: | 366ms |
total: | 700ms |
0 / 0 |