Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Сам запрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Pages - 9 миллионов строк Explain analyze Код: plaintext 1. 2. 3. 4. 5. 6. 7. В Postgres не сильно шарю, к сожалению. До этого работал с Mysql и MS SQL Server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 18:05 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
постройте индекс по pages.platform_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 18:25 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Есть такой индекс, разумеется. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 18:42 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Alexey Nayden пишет: > SELECT pl.domain, pl.status_id, > pl.id, pl.status_set_date AS moderation_duration, > count(pg.id) AS pages_count, > SUM(CASE WHEN pg.pr IS NULL THEN *1* END) AS no_pr, > SUM(CASE WHEN pg.yap IS NULL THEN *1* END) AS no_yap, > SUM(CASE WHEN pg.gop IS NULL THEN *1* END) AS no_gop > FROM platforms AS pl JOIN pages AS pg ON (pl.id = pg.platform_id) > WHERE pl.getting_seo_status_id <> *123* > GROUP BY pl.domain, pl.status_id, pl.id, pl.status_set_date; Тут можно оптимизировать только JOIN. SARG-ов нет, искать нечего, будут обрабатываться все строки. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2008, 00:10 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
А покажите пжл результаты запроса Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2008, 12:17 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Gold_А покажите пжл результаты запроса Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2008, 22:39 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
VACUUM FULL ANALYSE делается? покажите пжл результаты запроса Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2008, 16:22 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
так много, давай так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2008, 23:30 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Gold_VACUUM FULL ANALYSE делается? покажите пжл результаты запроса Код: plaintext 1. 2. Нормально выполнилось: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2008, 23:57 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Gold_VACUUM FULL ANALYSE делается?Включен авто-VACUUM. Этого достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2008, 23:57 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Gold_VACUUM FULL ANALYSE делается?Включен авто-VACUUM. Этого достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 00:00 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Попробовал разбить свой запрос на 3 разных: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Теперь ситуация очень странная: запрос почти всегда выполняется за 3 секунды, но иногда - опять по 2 минуты. С чем может быть связно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 00:02 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Alexey Nayden, всё-таки стоит начать с vacuum full analyze. также интересно посмотреть Код: plaintext 1. 2. также интересно посмотреть остальные настройки планировщика Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 01:46 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. На счет количества записей - я смотрел по приложению, но не учел, что там не все pages отображаются. Нехилая ошибка в 1.5 раза Код: plaintext 1. 2. 3. 4. 5. P.S. Запустил full vacuum analyze. Думаю, к утру закончится - отпишу результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 01:54 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Alexey NaydenТеперь ситуация очень странная: запрос почти всегда выполняется за 3 секунды, но иногда - опять по 2 минуты. С чем может быть связно? Подозреваю, когда все данные находятся в shared_buffers, тогда - 3 секунды, когда приходится лазить на винт - 3 минуты. Вряд ли вам удастся достичь стабилоного ускорения (я могу быть не прав) - всё-таки 10млн строк - это около 500Mb данных - не мало :-). Если у вас много памяти - попробуйте увеличить shared_buffers, но это до того момента, когда у вас станет не 10, а 100 миллионов. Если у вас этот запрос не частый - может стоить забить на него. Если его жизненно необходимо его быстрое выполнение, может быть стоит подумать о хранении "срезов" данных по дате (бьюсь об заклад - у pages есть какое-либо поле, отвечающее за дату), и потом делать просто выборку с union? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:16 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Alexey Nayden, а если сказать Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:17 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
вернее Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:20 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Также, В СЛУЧАЕ, ЕСЛИ getting_seo_status_id В platforms НЕ ИЗМЕННЫ есть ОЧЕНЬ ГРЯЗНЫЙ ХАК: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:28 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
eddieAlexey Nayden, а если сказать Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:33 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Alexey Nayden, мда... а если и hash join запретить? чтобы он nested loop сделал (seq scan по platforms, index scan на соответствующие значения в pages) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:49 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Funny_FalconТакже, В СЛУЧАЕ, ЕСЛИ getting_seo_status_id В platforms НЕ ИЗМЕННЫ есть ОЧЕНЬ ГРЯЗНЫЙ ХАК: Код: plaintext При включенном merge_join 115 секунд, при выключенном - 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:52 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
eddieAlexey Nayden, мда... а если и hash join запретить? чтобы он nested loop сделал (seq scan по platforms, index scan на соответствующие значения в pages) А вот это уже серьезная заявка на победу :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 02:56 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Alexey Nayden Не помогает даже грязный хак: При включенном merge_join 115 секунд, при выключенном - 52.Можно посмотреть на Explain Analyze ? Alexey Nayden Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 03:01 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Funny_FalconAlexey Nayden Не помогает даже грязный хак: При включенном merge_join 115 секунд, при выключенном - 52.Можно посмотреть на Explain Analyze ? Я уже дропнул индекс и закрыл консоль до завтра. Завтра днем сделаю снова и кину сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 03:04 |
|
||
|
Нужна помощь с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
автор Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. Как-то резко он в количестве строк ошибается. VACUUM ANALYZE platforms делали? можно попробовать просто ANALYZE platforms, чтобы не ждать VACUUM . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 03:07 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=256&tid=2003794]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 428ms |

| 0 / 0 |
