PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Производителността не се увеличава, дори се увеличава размерът на work_mem

Увеличаването на work_mem изглежда прави сортирането около 8 пъти по-бързо:(172639.670 - 169311.063) / (167975.549 - 167570.669) . Но тъй като сортирането зае само малка част от общото време за изпълнение, правенето му дори 1000 пъти по-бързо не може да направи нещата много по-добри като цяло. Това е последователното сканиране, което отнема времето.

Голяма част от времето в сканирането на seq вероятно се изразходва за IO. Можете да видите, като стартирате EXPLAIN (ANALYZE, BUFFERS) след включване на track_io_timing.

Също така паралелното сканиране на seq често не е много полезно, тъй като IO системата обикновено е в състояние да достави пълния си капацитет на един четец, поради магията на readahead. А понякога паралелните читатели могат дори да се стъпят на пръстите на другия, влошавайки цялото представяне. Можете да деактивирате паралелизирането с set max_parallel_workers_per_gather TO 0; Това може да направи нещата по-бързи, а ако не стане, поне ще направи плана EXPLAIN по-лесен за разбиране.

Извличате над 3% от таблицата:193963 / (193963 + 6041677) . Индексите може да не са много полезни, когато извличате толкова много от тях. Ако трябва да бъдат, бихте искали комбиниран индекс, а не индивидуални. Така че бихте искали индекс на (client, event_name, date(datetime)) . Тогава ще трябва също да промените заявката, за да използвате date(datetime) вместо to_char(datetime, 'YYYY-MM-DD') . Трябва да направите тази промяна, защото to_char не е неизменен и затова не може да бъде индексиран.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стартирайте скрипт след входна точка на контейнер в docker-compose

  2. Postgresql отдалечен достъп без pg_hba.conf запис за хост

  3. Има ли някакъв начин да използвате OrmLite с Postgres hstores?

  4. Заявката не попада в индекса - това ли са правилните колони за индексиране?

  5. Генериране на последователност в ред