sql >> Databáze >  >> RDS >> PostgreSQL

Jak zakázat všechny optimalizace PostgreSQL

Nemůžete.

Plánovač dotazů PostgreSQL nemá žádný příznak „vypnout optimalizaci“.

Bylo by zajímavé přidat, ale regresní testy by byly mnohem složitější a měly by velmi omezenou použitelnost.

Abyste mohli dělat, co chcete, myslím, že byste chtěli upravit kód plánovače dotazů, překompilovat a znovu nainstalovat PostgreSQL pro každý test. Nebo jej hackněte a přidejte spoustu vlastních GUC (systémové proměnné, jako je enable_seqscan ), abyste mohli zapínat a vypínat konkrétní optimalizace.

Pochybuji, že by takový patch byl přijat do PostgreSQL, ale stálo by to za to, aby to bylo jedno.

Jedinou výzvou je, že PostgreSQL silně nerozlišuje mezi „optimalizací“ a „věcí, kterou děláme, abychom provedli dotaz“. Někdy části kódu plánovače očekávají a vyžadovat že byla použita určitá optimalizace, aby fungoval správně.




  1. Inicializátor typu pro 'System.Data.Entity.Migrations.DbMigrationsConfiguration`1' vyvolal výjimku

  2. Potřebujete také oprávnění k aktualizaci MYSQL?

  3. Získejte oprávnění sloupců pro tabulku v SQL Server pomocí T-SQL:sp_column_privileges

  4. Jak spojit mnoho řádků do jednoho řetězce v SQL Server 2008?