Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
La query impiega troppo tempo
La tua query può richiedere troppo tempo per i seguenti motivi. Ti suggeriamo i seguenti approcci per la risoluzione dei problemi.
Le tabelle non sono ottimizzate
Per ricevere tutti i vantaggi dell'elaborazione parallela, imposta la chiave di ordinamento, lo stile di distribuzione e la codifica della compressione delle tabelle. Per ulteriori informazioni, consultare Ottimizzazione automatica delle tabelle
La query sta scrivendo sul disco
Le tue query potrebbero scrivere al disco per almeno una parte dell'esecuzione della query. Per ulteriori informazioni, consultare Miglioramento delle prestazioni delle query.
La query deve attendere il completamento di altre query
Attraverso la creazione di code della query e l'assegnazione di differenti tipi di query per code idonee, potresti essere in grado di migliorare le prestazioni complessive del sistema. Per ulteriori informazioni, consultare Gestione dei carichi di lavoro.
Le query non sono ottimizzate
Analizza il piano di spiegazione per scoprire opportunità di riscrittura delle query o di ottimizzazione del database. Per ulteriori informazioni, consultare Creazione e interpretazione di un piano di interrogazione.
Le query necessitano di più memoria per essere eseguite
Se una query specifica richiede più memoria, puoi aumentare la memoria disponibile aumentando wlm_query_slot_count.
Il database richiede un comando VACUUM per essere eseguito
Esegui il comando VACUUM quando aggiungi, elimini o modifichi un gran numero di righe, a meno che non carichi i tuoi dati nell'ordine della chiave di ordinamento. Il comando VACUUM riorganizza i tuoi dati al fine di mantenere l'ordine e ripristinare le prestazioni. Per ulteriori informazioni, consulta Vacuum delle tabelle.
Risorse aggiuntive per la risoluzione di query di lunga durata
Di seguito sono riportati gli argomenti relativi alla visualizzazione del sistema e altre sezioni della documentazione utili per l'ottimizzazione delle query:
La vista di sistema STV_INFLIGHT mostra quali query sono in esecuzione sul cluster. Può essere utile utilizzarlo insieme a STV_RECENTS per determinare quali interrogazioni sono attualmente in esecuzione o completate di recente.
SYS_QUERY_HISTORY è utile per la risoluzione dei problemi. Mostra le query DDL e DML con proprietà pertinenti come il loro stato attuale, ad esempio
running
ofailed
, il tempo impiegato per l'esecuzione di ciascuna di esse e l'eventuale esecuzione di una query su un cluster con scalabilità concorrenziale.STL_QUERYTEXT acquisisce il testo di query per i comandi SQL. Inoltre, SVV_QUERY_INFLIGHT, che unisce STL_QUERYTEXT a STV_INFLIGHT, mostra più metadati delle query.
Un conflitto di blocco delle transazioni può essere una possibile origine di problemi di prestazioni delle query. Per informazioni sulle transazioni attualmente bloccate sulle tabelle, consulta SVV_TRANSACTIONS.
Identificazione delle domande più adatte al tuning fornisce una query di risoluzione dei problemi che consente di determinare quali query eseguite di recente hanno richiesto più tempo. Questo può aiutarti a concentrare i tuoi sforzi sulle domande che richiedono miglioramenti.
Se desideri approfondire la gestione delle query e capire come gestire le code di query, Gestione dei carichi di lavoro mostra come farlo. La gestione del carico di lavoro è una funzionalità avanzata e nella maggior parte dei casi consigliamo la gestione automatizzata del carico di lavoro.