Come immergersi nell'ottimizzatore di PostgreSQL e tracciare ogni passaggio necessario per ottimizzare la query?


8

Proprio come la struttura MEMO in SQL Server, che è una sorta di "traccia cartacea" di passaggi che l'ottimizzatore esegue per ottimizzare la query. PostgreSQL ha la struttura simile che registra i passaggi dell'ottimizzatore?

Risposte:


3

No, non esiste una struttura o funzione di verifica / reporting ottimizzata dettagliata.

Il tuo strumento migliore è 'gdb'. A differenza di MS SQL Server, PostgreSQL è open source; puoi semplicemente compilare con i simboli di debug abilitati, collegare un debugger e tracciare esattamente ciò che sta facendo.

Ciò non significa che sia facile, ovviamente. Un set fisso di punti di interruzione e macro gdb per produrre una traccia di ciò che sta facendo il pianificatore / ottimizzatore sarebbe molto bello. Non sono a conoscenza di tali strumenti a questo punto.

gdbI tracepoint, o perfutenti dello spazio utente, saranno molto utili per te.

È inoltre possibile abilitare la registrazione dettagliata del debug e alcuni dei parametri di traccia in postgresql.confpoi esaminare i file di registro dettagliati risultanti.

C'è della documentazione (a cui ho aggiunto informazioni sugli alberi del piano di dumping, ecc.) Nelle FAQ per sviluppatori PostgreSQL: https://wiki.postgresql.org/wiki/Developer_FAQ . Questo può essere utile Dovresti anche leggere i principali documenti dello sviluppatore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.