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

Няма кеширане на план за изпълнение за динамичен SQL в PostgreSQL 9.4?

Съгласно документацията:

Това е разумна функция . Естеството на динамичните заявки е, че те променят структурата си от обаждане на повикване.

Ако искате да извикате една и съща заявка многократно (по избор с различни параметри), използвайте подготвени оператори :

Или използвайте обикновен (нединамичен) SQL код във функциите plpgsql, те също се третират като подготвени изрази.

Във вашия случай , може би е най-добре да PREPARE заявки динамично. Тук имахме много подобен случай:

Освен това е изключително необичайно, че една заявка изразходва 1,4 секунди за планиране и само 0,1 секунди за изпълнение. Може би си струва да се разгледа. Може да има начини за оптимизиране. Като с join_collapse_limit :

Свързани:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем с регулярния израз на Postgres

  2. Как да създадете единична крайна точка за вашата настройка за репликация на PostgreSQL с помощта на HAProxy

  3. PostgreSQL - Преобразуване на низ в ASCII цяло число

  4. Най-добрият начин да научите съхранените процедури на PostgreSQL?

  5. Не може да се присъедини и да избере в Sequel -- PG::SyntaxError