|
|
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Добрый день. Можно ли еще дооптимизировать такой скрипт: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. План запроса: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. самый большой "тормоз" на условие по дате, может есть способ как это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 11:21 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Неужели нет идей? может необходима дополнительная информация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 11:52 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, explain analyze запроса приведите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 12:09 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
SheriffuaНеужели нет идей? может необходима дополнительная информация? основная идея идея -- кг/ам если охолонуть -- то сэкономить по мелочи на ширине ключа сортировки, или даже загнать на hash aggreagate (вместо group-//-) куда--то сюда Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 12:52 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Alexius, Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 16:31 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Alexius, это более правильный план: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 16:46 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, Скрипт создания таблиц - в студию. И результат запроса Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 17:01 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
qwwq, Вылазить такая ошибка: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 17:11 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН, Код: sql 1. Таблицы: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 17:18 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, Скажите вашему серверу Код: sql 1. 2. 3. 4. 5. 6. И выдайте EXPLAIN ANALYZE вашего запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 17:54 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН, Опечатался, т.к. вы не дали скрипта на все таблицы Но идея, думаю понятна. ИМХО, дата не при чём. Как создадите индексы по всем полям, где LIKE делаете - напишите какой план получился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 18:09 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
[quot Sheriffua] Код: sql 1. тады лейтерал не для вас. можете поборотся за мелочевку (ширину ключа группировки) группбаем только по _c.id, с последующим повторным чтением остальных полей. Но это скучно. а триграм по 3-ному межтабличному OR -- довольно смело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 18:09 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
qwwq, у него всё равно like тормозит. Вот если ещё на сервере с ресурсами беда, тогда ой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 18:12 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН,qwwq, С лейтерал понятно - версия не подходит, но не совсем понимаю идею - индексы по всем полям, где LIKE, они есть вроде везде, но об этом буду точно знать в понедельник. P.S. Спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 21:13 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
SheriffuaОКТОГЕН,qwwq, С лейтерал понятно - версия не подходит, но не совсем понимаю идею - индексы по всем полям, где LIKE, они есть вроде везде, но об этом буду точно знать в понедельник. P.S. Спасибо за помощь У вас индексы двоичные древья, а LIKE требуются обратные индексы по триграмам. Смотрите код повнимательнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2016, 02:42 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН, Целый день убили на игры с этими индексами, НИЧЕГО не поменялось, как был кост ~5248 таким он и остался, такое впечатление, что новые индексы запрос попросту не хочет видеть. Плюс еще заметил следующие, когда запрос строится без LIKE, кост становится меньшим, но не значительно~5211, так что пока тупик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 18:17 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, а в плане они участвуют? Или вообще никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 18:30 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН, вообще НИКАК (если вы про новосозданные индексы). заметил чем больше период даты, то кост увеличивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 18:31 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, а если прибить все другие на этих полях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 18:33 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН, вам сразу сказал автора триграм по 3-ному межтабличному OR -- довольно смело как вы представляете такую работу по индексам ? тогда ваш OR надо переписать на UNION [ALL , если повезет] по каждой подвыборке, соотв. каждой ветке из OR. вот тогда -- оно может сработать по вашим индексам если область пересечения невелика -- это м.б. ещё и выгодно, но сомневаюсь но сам пж на это не пустится. это слишком смело, для планера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 18:37 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
qwwq, я сейчас обстрагировался от OR, и писал выше, что кост при этом практически не меняется. поэтому видимо "тормоз" нужно искать в другом месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 18:45 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, А приведите также `EXPLAIN (analyze, buffers)`, чтобы видеть сколько буферов обрабатываются. И какие у вас измененные настройки: Код: sql 1. В помеченой части оптимизатор ошибается и потом бомбит единичными проходами: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Статистики у вас актуальные? P.S. Это так и задумано? Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 19:01 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Sheriffua, это OR абстрагироваляся от вас. вернее планировщик. и сказал вам, что до тех пор, пока у вас фильтр набора по межтабличному OR --он не сможет и не будет учитывать ваших долбанных индексов . будь они трижды триграмными. а вот чтобы попытаться запинать [под]запрос на эти непришей индексы -- надо его развалить на UNION из 3-х не то 2-х частей. как-то так :O] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 19:02 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
vyegorov, Статистики каждое утро собираются: Код: sql 1. Что касается условия: Код: sql 1. Оно может иметь любой набор символов, как ФИО полное так и сокращенное, просто Фамилия, или Имя отчество, не имеет значения, имеет значение, что это условие попадает автоматом для всех LIKE-ов. Файл приложил по запросу: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 19:09 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Попробуйте разбить индекс cause_idx_cause_db_id_in_date на два индекса - по дате и по ID. Статистика собирается по столбцам, и комбинированные индексы могут посчитать распределение данных неверно. Пересоберите статистику и проверьте если оптимизатор выбрал лучший план. С %asdf% вам обычные индексы не помогут. Смотрите текстовые индексы в Postgres. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2016, 09:21 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39169759&tid=1997429]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 485ms |

| 0 / 0 |
