|
|
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbdefecator, использую DOA + instantclient - в обычных оконных приложениях работает хорошо. Проблемы на x64 появились. FireDAC работает еще медленнее. Попробую на ODAC потестить, может быть не будет таких проблем. Я бы посоветовал профилировщик, а не гадание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 16:01 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbДегтярев Евгений, СУБД прекрасно поживает. Запрос выполняется за 3-6 сек , а подготовка запроса (работа DOA) может доходить до 10 мин в пиковые нагрузки. Это сумашествие вот это вот, что я выделил, и есть самое большое сумасшествие особенно если у тея настолько нагруженная система, как ты пишешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 16:06 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
schi, профилировщик указывает на конкретную процедуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 16:40 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
defecator, кстати без OCI ODAC в моем случае работать не будет. Я передаю в качестве параметров 8 массивов по 150 000 элементов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 16:43 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrb, открой тайну, что за данные такие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 16:48 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийоткрой тайну, что за данные такие? иконки попиксельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 17:14 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbdefecator, кстати без OCI ODAC в моем случае работать не будет. Я передаю в качестве параметров 8 массивов по 150 000 элементов ну что я могу сказать. ты не на своём месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2018, 21:12 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
defecator, ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 08:39 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
defecator, посмотрел не туда. при Direct mode нет поддержки PLSQL tables, а не ассоциативных массивов. Но не беда. При присвоении Variant массивов очень много памяти жрется, но это не точно, я с ODAC не работал, буду копаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 09:23 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbdefecator, посмотрел не туда. при Direct mode нет поддержки PLSQL tables, а не ассоциативных массивов. Но не беда. При присвоении Variant массивов очень много памяти жрется, но это не точно, я с ODAC не работал, буду копаться Direct Mode в ODAC работает медленнее, чем работа через клиента оракла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 09:50 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbschi, профилировщик указывает на конкретную процедуру код процедуры то этой есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 09:54 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, Код: pascal 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. При инициализации Код: pascal 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. 97. В Execute потока: try fStartNew:= GetTickCount; ods.SetVariable(0, obPack.m1); ods.SetVariable(1, obPack.m2); ods.SetVariable(2, obPack.m3); ods.SetVariable(3, obPack.m4); ods.SetVariable(4, obPack.m5); ods.SetVariable(5, obPack.m6); ods.SetVariable(6, obPack.m7); ods.SetVariable(7, obPack.m8); ods.SetVariable(8, obPack.cnt_pack); buf_set:= inttostr(GetTickCount - fStartNew); fStartNew:= GetTickCount; try EOracle:= 0; ods.Execute; err_Execute:= False; except on E: EOracleError do begin EOracle:= E.ErrorCode; end; on E: Exception do begin WriteLog(FormatDateTime('yyyy_mm_dd_hh:nn:ss', now)+' (!ОШИБКА) Модуль записи в БД. Выполнение запроса. Поток №'+inttostr(fnum)+' '+e.Message); err_Execute:= True; end; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 10:26 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
И что, профилировщик прямо на весь этот горький катаклизм указывает ? Не верю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 10:29 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
schi, на этот Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 10:35 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
если использовать ODAC Код: pascal 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. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. Код: pascal 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. на методе Execute происходит прирост ОЗУ памяти с 1,5 ГБ до 3,8 и вылетает с ошибкой ORA-03113: end-of-file on communication это при Direct mode, при Client mode еще не пробовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:04 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
8 массивов по 150к элементов - не хило так не пробовал передавать в запрос пачки по меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:14 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, пробовал, но не подходит, начинает копиться очередь, мне бы 500 000 поставить - лучше бы было другим потокам, но тогда вообще тормоза с DOA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:20 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
постоянно такой поток или это на пиках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:29 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, постоянно, на пиках больше в несколько раз, но между пиками есть время успеть разобрать накопленное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:32 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrb, Код: pascal 1. 2. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:47 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
Данная задача по скорости не может быть решена в принципе с используемым инструментарием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 11:51 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
defecator, печалька ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 12:04 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbdefecator, печалька сваливай данные для загрузки в базу в файлы а отдельный процесс или поток пусть неспешно файлы читает, заносит данные в БД, и удаляет файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 12:11 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
чччД, так код автоматом из PL/SQL Developer'а генерится) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 12:11 |
|
||
|
Обмен данными между своими процессами
|
|||
|---|---|---|---|
|
#18+
cptngrbчччД, так код автоматом из PL/SQL Developer'а генерится) при использовании ODAC вот это всё говнище: Код: pascal 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. писать руками не надо от слова совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 12:15 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39616958&tid=2041123]: |
0ms |
get settings: |
11ms |
get forum list: |
26ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 281ms |
| total: | 625ms |

| 0 / 0 |
