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

Sådan deaktiveres alle optimeringer af PostgreSQL

Det kan du ikke.

PostgreSQL's forespørgselsplanlægger har ikke noget "sluk optimering"-flag.

Det ville være interessant at tilføje, men ville gøre regressionstestene meget mere komplekse og være af meget begrænset nytte.

For at gøre, hvad du vil, tror jeg, du vil ændre forespørgselsplanlægningskoden, kompilere og geninstallere PostgreSQL for hver test. Eller hack det for at tilføje en masse brugerdefinerede GUC'er (systemvariabler, såsom enable_seqscan ) for at lade dig slå bestemte optimeringer til og fra.

Jeg tvivler på, at en sådan patch ville blive accepteret i PostgreSQL, men det ville være værd at gøre som en smid.

Den eneste udfordring er, at PostgreSQL ikke skelner kraftigt mellem "optimering" og "ting vi gør for at udføre forespørgslen". Nogle gange forventer dele af planlæggerkoden og kræver at en bestemt optimering er blevet anvendt for at fungere korrekt.




  1. Visual Studio 2017 viser ikke MySQL i forbindelseslisten

  2. Formater nummer til forkortet nummer

  3. Hvor klausulen virker, virker ikke på tinyint

  4. HOUR() vs EXTRACT(HOUR …) i MariaDB:Hvad er forskellen?