|
|
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
Доброго веремени суток форумчане ! Имеется представление с запросом : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Которая выполняется 2658.875 ms План запроса work_mem = 1 mb : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. work_mem = 200mb Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. К этому представлению делается запрос : Код: sql 1. 2. 3. 4. 5. 6. 7. Котрый выполняется Total runtime: 2277.899 ms Посоветуйте как ускорить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 14:21 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
NewBie77Доброго веремени суток форумчане ! Имеется представление с запросом : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Которая выполняется 2658.875 ms План запроса work_mem = 1 mb : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. work_mem = 200mb Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. К этому представлению делается запрос : Код: sql 1. 2. 3. 4. 5. 6. 7. Котрый выполняется Total runtime: 2277.899 ms Посоветуйте как ускорить. Через view - никак. Тут надо условия под GROUP BY вносить а postgresql этого не умеет. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 14:33 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, Да ну тут-то вопрос в другом, как я полагаю. Тут окончательная выборка двух строк, от полной не слишком сильно по времени отличается. В обоих случаях примерно одинаково и долго. Хотя данных-то не много, если верить rows'ам. Может в индексах много несуществующих записей? Я не шарю в оптимизациях, но довольно простая агрегация на не больших объёмах и так долго выполняется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 15:14 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
У меня запрос на представление работает медленно, перед explain analyze сделал vacuum на таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 15:19 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
GeniyZMaxim Boguk, Да ну тут-то вопрос в другом, как я полагаю. <т.п. бред> вот не надо полагать сказали в морг -- значит в морг вам же разжевали и объяснили, что пж не может протащить условие, наложенное после группировки -- вовнутрь группового запроса (вьюхи), в условие "до группироки" -- т.е. в обоих случаях вычисляется полный агрегат всей таблицы. а во втором он , после подсчёта, фильтруется. т.е .время счёта в обоих случаях -- время полной группировки. неужели так сложно напрячь межушный ганглий и помедитировать над сказанным, йоксель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 15:54 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
как я вижу -- там и в самом запросе это поле -- агрегат . т.е. протащить в параметрическую табличную ф--ю не светит -- будет в HAVING хотя , возможно , 2. можно переписать сам запрос. или 1. -- агрегат там ленивый, вместо включения в GROUP--list. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 16:03 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
Maxim BogukЧерез view - никак. Тут надо условия под GROUP BY вносить а postgresql этого не умеет. Патч есть и шанс есть, что его в 9.6 добавят: www.postgresql.org/message-id/flat/8783.1456842626@sss.pgh.pa.us Очень прям хочется! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 16:05 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
поправил ссылкуvyegorovПатч есть и шанс есть, что его в 9.6 добавят: http://www.postgresql.org/message-id/flat/8783.1456842626@sss.pgh.pa.us]http://www.postgresql.org/message-id/flat/8783.1456842626@sss.pgh.pa.us Очень прям хочется! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 16:07 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
vyegorov, приятная новость, но к делу не относится Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. -- откуда мораль: по заданным в списке конечного запроса lbl.id (и условиям связи) найти ключи группировки , и вставить их в WHERE исходного view. и, напрмиер, добавить HAVING фильтр на предмет того, что там не найдется меньщих id Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. --запхать это в SQL --ф-ю, и дергать вместо запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 16:21 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
qwwq, ах, да, это будет работать, пока в ключах группировки не будет NULL-s. Как только -- придется писать оператор, выполняющий "IS NOT DISTINCT FROM" (не оператор, к сожалению, ни разу) для вашего row, что скорее всего неразрешимо. разрешимо -- написать полный перебор случаев вхождения NULL в ваш ROW(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 16:26 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
qwwq, Сударь, я прекрасно понимаю что пж не протаскивает условие в группировку. В данном конкретном случае топикстартеру это и не надо. Он и спрашивает-то о другом. Лишь об этом я писал. А вы сразу йоксель,... . Вот: У меня запрос на представление работает медленно, перед explain analyze сделал vacuum на таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 18:53 |
|
||
|
Оптимизация представления
|
|||
|---|---|---|---|
|
#18+
GeniyZqwwq, Сударь, я прекрасно понимаю что пж не протаскивает условие в группировку. В данном конкретном случае топикстартеру это и не надо. Он и спрашивает-то о другом. Лишь об этом я писал. А вы сразу йоксель,... . Вот: У меня запрос на представление работает медленно, перед explain analyze сделал vacuum на таблицы. ну фу не надо юлить под оппонентом не в борделе чай вон, выше -- все ходы записаны у него единственный IS -- IOS по свежайшей VM авторHeap Fetches: 0 всё остальное -- фулл сканами т.ч. до сударьканья вам ещё расти и расти, мил. чел. вот ещё мощность мн-ва после группировки практически не падает (с rows=356286 => rows=202404) -- т.ч. даже 200М не даёт перейти к хеш-агрегату. Половину времени отжирают сканы, половину -- ГруппАггрегат. т.ч. спрашивает он как раз об этом -- как ускориться для пары ключей из 200 000. а то, что он в пылу и горячке что--то анализирует -- то тоже верно, статистику освежыть никогда не вредно. особенно, когда в голове туман. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 20:55 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39184971&tid=1997380]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 527ms |

| 0 / 0 |
