Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Importante
La scalabilità automatica di Lakebase si trova in Beta nelle aree seguenti: eastus2, westeurope, westus.
Lakebase Autoscaling è la versione più recente di Lakebase con calcolo autoscalante, riduzione a zero, ramificazione e ripristino istantaneo. Per il confronto delle funzionalità con Lakebase Provisioned, vedere scegliere tra le versioni.
pg_stat_statements è un'estensione Postgres che fornisce una visualizzazione statistica dettagliata dell'esecuzione di istruzioni SQL all'interno del database Postgres di Lakebase. Tiene traccia delle informazioni, ad esempio conteggi di esecuzione, tempi di esecuzione totali e medi e altro ancora, consentendo di analizzare e ottimizzare le prestazioni delle query SQL.
Quando usare pg_stat_statements
Usare pg_stat_statements quando è necessario:
- Statistiche dettagliate sull'esecuzione delle query e metriche delle prestazioni
- Identificazione di query lente o eseguite di frequente
- Analisi delle prestazioni delle query e informazioni dettagliate sull'ottimizzazione
- Analisi del carico di lavoro del database e pianificazione della capacità
- Integrazione con strumenti e dashboard di monitoraggio personalizzati
Abilitare pg_stat_statements
L'estensione pg_stat_statements è disponibile in Lakebase Postgres. Per abilitarlo:
Connetti al tuo database usando l'editor SQL o un client Postgres.
Eseguire il comando SQL seguente per creare l'estensione:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;L'estensione inizia a raccogliere statistiche immediatamente dopo la creazione.
Persistenza dei dati
Le statistiche raccolte dall'estensione pg_stat_statements vengono archiviate in memoria e non vengono mantenute quando il calcolo lakebase viene sospeso o riavviato. Ad esempio, se il calcolo si riduce a causa dell'inattività, le statistiche esistenti andranno perse. Dopo il riavvio del calcolo vengono raccolte nuove statistiche.
Questo comportamento significa che:
- Reimpostazione delle statistiche dopo il riavvio del calcolo o le sospensioni
- L'analisi delle prestazioni a esecuzione prolungata richiede una disponibilità di calcolo coerente
- È consigliabile esportare statistiche importanti prima della manutenzione pianificata o dei riavvii
Annotazioni
È consigliabile eseguire regolarmente le query di monitoraggio e archiviare i risultati esternamente se sono necessari dati cronologici sulle prestazioni in eventi del ciclo di vita di calcolo.
Altre informazioni: Estensioni Postgres
Statistiche di esecuzione delle query
Dopo aver abilitato l'estensione, è possibile eseguire query sulle statistiche di esecuzione usando la vista pg_stat_statements. Questa vista contiene una riga per ogni query di database distinta, che mostra varie statistiche:
SELECT * FROM pg_stat_statements LIMIT 10;
La visualizzazione contiene dettagli come:
| ID utente | dbid | queryid | query | calls |
|---|---|---|---|---|
| 16391 | 16384 | -9047282044438606287 | SELECT * FROM users; | 10 |
Per un elenco completo di colonne e descrizioni, vedere la documentazione di PostgreSQL.
Query di monitoraggio principali
Usare queste query per analizzare le prestazioni del database:
Trovare le query più lente
Questa query identifica le query con il tempo di esecuzione medio più elevato, che può indicare query inefficienti che richiedono l'ottimizzazione:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
(total_exec_time / calls) AS avg_time_ms
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 20;
Trovare query eseguite più di frequente
Le query eseguite più di frequente sono spesso percorsi critici e candidati di ottimizzazione. Questa query include i rapporti di riscontri nella cache per identificare le query che potrebbero trarre vantaggio dall'indicizzazione migliore:
SELECT
query,
calls,
total_exec_time,
rows,
100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements
ORDER BY calls DESC
LIMIT 20;
Trovare query con I/O più elevate
Questa query identifica le query che eseguono la maggior parte delle operazioni di I/O del disco, che possono influire sulle prestazioni complessive del database:
SELECT
query,
calls,
shared_blks_read + shared_blks_written AS total_io,
shared_blks_read,
shared_blks_written
FROM pg_stat_statements
ORDER BY (shared_blks_read + shared_blks_written) DESC
LIMIT 20;
Trova le query più dispendiose in termini di tempo
Questa query identifica le query che consumano il tempo di esecuzione totale in tutte le esecuzioni.
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
rows
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;
Trovare query che restituiscono molte righe
Questa query identifica le query che restituiscono set di risultati di grandi dimensioni, che possono trarre vantaggio dall'impaginazione o dal filtro:
SELECT
query,
calls,
rows,
(rows / calls) AS avg_rows_per_call
FROM pg_stat_statements
ORDER BY rows DESC
LIMIT 10;
Reimpostare le statistiche
Per reimpostare le statistiche raccolte da pg_stat_statements, seguire questi passaggi:
Annotazioni
Solo databricks_superuser i ruoli hanno il privilegio necessario per eseguire questa funzione. Al ruolo predefinito creato con un progetto Lakebase e i ruoli creati nell'app Lakebase viene concessa l'appartenenza al databricks_superuser ruolo.
SELECT pg_stat_statements_reset();
Questa funzione cancella tutti i dati statistici accumulati, ad esempio i tempi di esecuzione e i conteggi per le istruzioni SQL, e inizia a raccogliere dati aggiornati. È particolarmente utile quando si vuole iniziare a raccogliere statistiche sulle prestazioni.
Risorse
Altre informazioni: Documentazione di PostgreSQL