Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Есть 2 сервера, PostgreSQL 8.1.4, таблица tp на обоих серверах практически идентична, за исключением индексов. Есть запрос Код: plaintext 1. 1) в первом случае индексы по полям (count), (country), (district), (food, tour_nb), (hotel_cnt), (oper, tour_nb), (room_class), (stars), (tour_nb), (vilet). Explain analyze: Код: plaintext 1. 2. 3. Explain analyze: Код: plaintext 1. 2. 3. 4. 5. Разница между 36747.007 ms и 1506438.271 ms я так понимаю из-за разных методов. Причем, даже если убрать условие WHERE(vivod <> 0), ничего не меняется ни на первом сервере, ни на втором... Что можно сделать, чтобы на втором сервере постгрес также делал через HashAggregate, а не через GroupAggregate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 14:03 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Lirin1) в первом случае индексы по полям (count), (country), (district), (food, tour_nb), (hotel_cnt), (oper, tour_nb), (room_class), (stars), (tour_nb), (vilet). 2) во втором случае индексы по полям (count), (country), (days_nights), (district), (food), (hotel_cnt, price), (price), (stars), (currency), (tour_nb), (tour_nb, vilet), (tour_nb, vilet, hotel_cnt, days_nights, food, price), (vilet).Эти индексы ни при чем. Ни в первом, ни во втором планах они не используются. Попробуйте построить индекс по комбинации "country,district,tour_nb,vilet,currency" или частичный с условием "where vivod<>0". LirinРазница между 36747.007 ms и 1506438.271 ms я так понимаю из-за разных методов.Не только. Обратите внимание, скорость выполнения аналогичных этапов seqscan, возвращающих примерно одинаковое кол-во строк, отличается в 25 раз. Seq Scan on tp ... (actual time=1.011..15802.976 rows=6286137 loops=1) Seq Scan on tp ... (actual time=19.984..383624.708 rows=6284155 loops=1) LirinЧто можно сделать, чтобы на втором сервере постгрес также делал через HashAggregate, а не через GroupAggregate?set enable_hashagg to on; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 14:54 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatПопробуйте построить индекс по комбинации "country,district,tour_nb,vilet,currency" или частичный с условием "where vivod<>0". индекс создан, но все равно я так понимаю не используется, условие "where vivod<>0" из запроса убрано, т.к. в общем-то оно там и не нужно, в результате все равно: Код: plaintext 1. 2. 3. 4. LeXa NalBatset enable_hashagg to on; изначально было на "on", но постгрес почему-то упорно предпочитает GroupAggregate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 16:58 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
set enable_sort to off; set enable_seqscan to off; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2007, 09:59 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatset enable_sort to off; set enable_seqscan to off; не помогло, все равно GroupAggregate, с незначительным изменением времени выполнения. на что еще можно посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2007, 17:06 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Lirin LeXa NalBatset enable_sort to off; set enable_seqscan to off;не помогло, все равно GroupAggregateпокажите explain analyze. и еще \d tp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 09:56 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Таблица, 6,5 миллионов записей: Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Код: 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. 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. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 13:56 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LirinИ в результате: GroupAggregate -> Index Scanсделайте "set enable_indexscan to off", "set enable_sort to off" и покажите explain analyze Lirinне дает покоя прелесть HashAggregate с 36 секундами выполнения....так ведь это на другом сервере и базе, где seqscan в 25 раз быстрее. тут надо не с hash/group разбираться, а искать различия межде этими серверами/базами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 14:32 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatсделайте "set enable_indexscan to off", "set enable_sort to off" и покажите explain analyze Код: plaintext 1. 2. LeXa NalBatтак ведь это на другом сервере и базе, где seqscan в 25 раз быстрее. тут надо не с hash/group разбираться, а искать различия межде этими серверами/базами базы одинаковые, за исключением индексов основная разница пожалуй только в том, что один вебсервер, другой локальный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 15:05 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Lirin LeXa NalBatсделайте "set enable_indexscan to off", "set enable_sort to off" и покажите explain analyzeGroupAggregate (cost=100000000.00 -> Index Scan using tp2 on tp (cost=100000000.00не понятно. сделайте пожалуйста select version(); и show enable_hashagg; Lirin LeXa NalBatтак ведь это на другом сервере и базе, где seqscan в 25 раз быстрее. тут надо не с hash/group разбираться, а искать различия межде этими серверами/базамибазы одинаковые, за исключением индексов основная разница пожалуй только в том, что один вебсервер, другой локальный.тем не менее. при том что они кажутся одинаковыми, на одном простой seqscan работает в 25 раз быстрее, чем на другом. наверное надо понять причину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 18:05 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
[quot LeXa NalBatсделайте пожалуйста select version(); и show enable_hashagg;[/quot] enable_hashagg = on версия "PostgreSQL 8.1.4 on i386-unknown-freebsd5.4, compiled by GCC gcc (GCC) 3.4.2 [FreeBSD] 20040728" LeXa NalBatтем не менее. при том что они кажутся одинаковыми, на одном простой seqscan работает в 25 раз быстрее, чем на другом. наверное надо понять причину. а в какую сторону лучше копать? железо (проц, память) или настройки (фрибсд, постгрес)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 18:51 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Lirinenable_hashagg = on версия "PostgreSQL 8.1.4 on i386-unknown-freebsd5.4, compiled by GCC gcc (GCC) 3.4.2 [FreeBSD] 20040728"спасибо, все правильно. я вам ошибочно советовал выключить seqscan. попробуйте плиз так: set enable_seqscan to on; set enable_hashagg to on; set enable_indexscan to off; set enable_sort to off; Lirin LeXa NalBatтем не менее. при том что они кажутся одинаковыми, на одном простой seqscan работает в 25 раз быстрее, чем на другом. наверное надо понять причину.а в какую сторону лучше копать? железо (проц, память) или настройки (фрибсд, постгрес)?причина наверное может быть в чем угодно - железо (частота проца, перегрев, объем памяти,..?) - ось (сборка,..?) - постгрес (конфиг,..?) - база (разрослась, закэшировалась,..?) для того чтобы проверить, что база не разрослась, я бы на обоих серверах одинаковым образом создал новую тестовую таблицу, залил в нее одинаковые данные, сравнил скорость выполнения seqscan. для того, чтобы кэширование не внесло ошибку в сравнение, я смотрю на время выполнения второго подряд запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 19:49 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Lirin[quot LeXa NalBatсделайте пожалуйста select version(); и show enable_hashagg; а в какую сторону лучше копать? железо (проц, память) или настройки (фрибсд, постгрес)?[/quot] Я бы начал с дисков --- hdparm'ом проверил скорость чтения и посмотрел настройки dma и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 14:48 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34520261&tid=2005459]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 439ms |

| 0 / 0 |
