PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come disabilitare tutte le ottimizzazioni di PostgreSQL

Non puoi.

Il pianificatore di query di PostgreSQL non ha il flag "disattiva l'ottimizzazione".

Sarebbe interessante aggiungere, ma renderebbe i test di regressione molto più complessi e di utilità molto limitata.

Per fare quello che vuoi, penso che vorresti modificare il codice del pianificatore di query, ricompilare e reinstallare PostgreSQL per ogni test. Oppure hackerarlo per aggiungere una serie di GUC personalizzate (variabili di sistema, come enable_seqscan ) per attivare e disattivare particolari ottimizzazioni.

Dubito che una patch del genere venga accettata in PostgreSQL, ma varrebbe la pena usarla.

L'unica sfida è che PostgreSQL non distingue fortemente tra "ottimizzazione" e "cosa che facciamo per eseguire la query". A volte parti del codice del pianificatore prevedono e richiedi che è stata applicata una particolare ottimizzazione per funzionare correttamente.