|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Есть БД на Firebird 2.5 SuperClassic. Запросы из самых больших таблиц базы обрабатываются 10-15 секунд (количество записей в таблице 800 000). В conf увеличил количество кешируемых страниц до 100 000, и всё равно то же самое... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 04:15 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos, Ты надеешься что тут собрались владельцы исключительно сильных хрустальных шаров которые усилием мысли определят: структуру твоих таблиц твои запросы планы твоих запросов? Огорчу. Таких хрустальных шаров нет в продаже. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 04:31 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos, о структуре таблиц, схеме их индексации и тексте запроса предлагается догадаться? кроме того, когда речь идет о "долгой обработке запроса", то ещё и план выполнения не помешает. без этого - никто тебе ничего не посоветует (ну, разве только, сменить профессию, или укажут на классическую ошибку в 17-й строке, при правильном ответе - 42). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 04:33 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Структура на скрине, выполняю запрос select * from REESTR3 where ID_ADRESS=4242 Модератор: Вложение удалено. Модератор: Вложение удалено. Модератор: Вложение удалено. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 05:17 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos, за структуру выложенную скриншотами топик и грохнуть могут. Скрипт создания таблицы можно скопировать со вкладке DDL. PS. Похоже совет о смене профессии был правильным. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 06:58 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimosselect * from REESTR3 where ID_ADRESS=4242 этот запрос может тормозить только из=за отсутствия индекса на ID_ADRESS. И ещё неужто требуются все 89 полей? Структура таблицы полный отстой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 07:18 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos, Вместо скриншотов с вкладки Fields нужно было скопировать весь текст с вкладки "DDL" - там все гораздо понятнее + там есть информация о ключах и индексах, которой для ответа на вопрос и не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 07:55 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosА всё, процедуры ж надо было юзать... И при чем тут процедуры? От запихивания этого запроса в процедуру его суть никак не поменяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 08:04 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Код: sql 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.
Знаю что структура отстойная, работаю с тем что дали. И да, поля нужны все ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 08:24 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos, под кат прячь свои портянки CREATE INDEX REESTR3_IDX1 ON REESTR3 (ID_ADRESS) простой индекс, примени и проверь запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 08:42 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Gallemar, теперь на самом сервере выполняется быстро, но со стороны клиента, так же долго. У клиента стоит программа, написана на Delphi. К базе подключается через ODBC драйвер. В самой программе всё просто, ADOConnection использует ODBC, команды выполняются через ADOQuery. ADOQuery1.SQL.Text:=('select * from REESTR3 where ID_ADRESS=4242'); ADOQuery1.Active:=TRUE; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 09:39 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos, выполни на сервере запрос select count(*) from REESTR3 where ID_ADRESS=4242 и покажи сколько насчитает ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 09:48 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Gallemar, COUNT 6 ------ Performance info ------ Prepare time = 0ms Execute time = 0ms Avg fetch time = 0,00 ms Current memory = 2 505 752 Max memory = 2 758 208 Memory buffers = 384 Reads from disk to cache = 180 Writes from cache to disk = 0 Fetches from cache = 1 578 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:01 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Dokimos В conf увеличил количество кешируемых страниц до 100 000, и всё равно то же самое... Что именно менял и на сколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:09 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Gallemar, DefaultDbCachePages сейчас вообще 2000000 стоит ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:11 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosGallemar, DefaultDbCachePages сейчас вообще 2000000 стоит Нахера Зачем столько? Я не память не помню сколько надо СуперКлассику, может меня поправят, но тебе требуется в сотни раз меньше. Сколько коннектов к базе обычно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:17 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Gallemar, человек 30-40. Знаю что много XD. Просто попробовал ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:19 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
GallemarСколько коннектов к базе обычно?ставлю 5 копеек на 3 штуки: 1 из эксперта, 1 из дельфи, 1 из запущенной приклады на дельфи. :) Скриншоты грохнул, пример как оформлять свои портянки кода выше сделал. Дальше самостоятельно, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:21 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosЗнаю что много XD.много чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:21 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosGallemar, человек 30-40. Знаю что много XD. Просто попробовал Так надо пробовать с пониманием Вот тут оптимизированные конфиги http://ib-aid.com/ru/optimized-firebird-configuration/ больше ничего не крутил? Например, TempBlockSize ? Вообще по ADO лучше в другую ветку, тут Delphi никто не знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:24 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosGallemar, DefaultDbCachePages сейчас вообще 2000000 стоит Т.е у тебя на сервере есть 2000000 * 8 кб * 30-40 коннектов = 610 ГигаБайт памяти есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:33 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
Gallemar, конфиг оттуда и стоит, просто одно значение пробовал менять ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:34 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosGallemar, конфиг оттуда и стоит, просто одно значение пробовал менять не надо менять,если не знаешь зачем оно. Есть хорошая документация у red soft, с описанием каждого параметра. Или вот ещё, минимум: Описание параметров сервера Firebird ("C:\Program Files\Firebird\Firebird_2_5\firebird.conf") DefaultDbCachePages - кол-во страниц кэша на каждый коннект, ставить не меньше 2048. FileSystemCacheSize - максимальный размер оперативной памяти, используемый системным файловым кешем, в %,40%, смотреть по свободной памяти. LockMemSize - кол-во байт для менеджера блокировок, ставить не меньше 6400000 LockHashSlots - ширина хэш таблицы, только простые числа!!!!!,ставить не меньше 10007 TempCacheLimit - размер временных файлов C:\Windows\Temp. TempDirectories - путь к временным файлам,ставить на быстрый массив!!! MaxUserTraceLogSize - максимальный размер файла трассировки ConnectionTimeout - время ожидания ответа клиента Изменения проводить: При остановленном сервере, изменения применятся только при старте. Резко значения за раз не увеличивать, возможна резкая просадка производительности. Предварительно прочитать "Помилуй мя Господи" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:44 |
|
Долгая обработка запроса SELECT
|
|||
---|---|---|---|
#18+
DokimosЗнаю что структура отстойная, работаю с тем что дали. И да, поля нужны все Структуры пока-что никакой не видно, только плоская таблица :) Однако полное отсутствие индексов и даже первичного ключа приводит к мысли что... собственно при такой широкой записи с кучей varchar полей при количестве записей под миллион поиск натуралом (т.е. без индексов) вполне может идти по 10 секунд. Ибо параметров тачки нам тут тоже никто не озвучил. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 10:59 |
|
|
start [/forum/topic.php?fid=40&fpage=47&tid=1561654]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 196ms |
0 / 0 |