Condividi tramite


Informazioni dettagliate sulle query nel data warehousing di Fabric

Si applica a: Endpoint di analisi SQL e Warehouse in Microsoft Fabric

In Microsoft Fabric la funzionalità informazioni dettagliate sulle query è una soluzione scalabile, sostenibile ed estendibile per migliorare l'esperienza di analisi SQL. Con i dati delle query cronologici, le informazioni dettagliate aggregate e l'accesso al testo effettivo delle query, è possibile analizzare e ottimizzare le prestazioni delle query. Qi fornisce informazioni sulle query eseguite solo nel contesto di un utente, le query di sistema non vengono considerate.

La funzionalità informazioni dettagliate sulle query offre una posizione centrale per i dati delle query cronologici e informazioni dettagliate praticabili per 30 giorni, consentendo di prendere decisioni informate per migliorare le prestazioni dell'endpoint di analisi SQL o warehouse. Quando una query SQL viene eseguita in Microsoft Fabric, la funzionalità informazioni dettagliate sulle query raccoglie e consolida i dati di esecuzione, fornendo informazioni preziose. È possibile visualizzare il testo completo della query per i ruoli Amministratore, Membro e Collaboratore.

  • Dati delle query cronologiche: la funzionalità Informazioni dettagliate query archivia i dati cronologici sulle esecuzioni di query, consentendo di tenere traccia delle modifiche delle prestazioni nel tempo. Le query di sistema non vengono archiviate in informazioni dettagliate sulle query.
  • Informazioni dettagliate aggregate: la funzionalità informazioni dettagliate sulle query aggrega i dati di esecuzione delle query in informazioni dettagliate più utili, ad esempio l'identificazione di query con esecuzione prolungata o la maggior parte degli utenti attivi. Queste aggregazioni si basano sulla forma di query e vengono illustrate più avanti in Come vengono aggregate query simili per generare informazioni dettagliate.

Operazioni preliminari

È necessario avere accesso a un endpoint di analisi SQL o a Un warehouse all'interno di un'area di lavoro della capacità Premium con autorizzazioni di collaboratore o superiore.

Quando sono necessarie informazioni dettagliate sulle query?

La funzionalità Informazioni dettagliate query risolve diverse domande e preoccupazioni relative alle prestazioni delle query e all'ottimizzazione del database, tra cui:

Analisi delle prestazioni delle query

  • Quali sono le prestazioni cronologiche delle query?
  • Sono presenti query con esecuzione prolungata che richiedono attenzione?
  • È possibile identificare le query che causano colli di bottiglia delle prestazioni?

Ottimizzazione e ottimizzazione delle query

  • Quali query vengono eseguite di frequente e quali prestazioni possono essere migliorate?
  • È possibile identificare le query non riuscite o annullate?
  • È possibile tenere traccia delle modifiche apportate alle prestazioni delle query nel tempo?
  • Ci sono query che eseguono costantemente prestazioni scarse?

Monitoraggio attività utente

  • Chi ha inviato una determinata query?
  • Quali sono gli utenti più attivi o gli utenti con le query con esecuzione più lunga?

Esistono tre visualizzazioni di sistema per fornire risposte a queste domande:

Dove è possibile visualizzare informazioni dettagliate sulle query?

Le viste generate automaticamente si trovano nello schema nell'endpoint queryinsights di analisi SQL e in Warehouse. In Fabric Explorer di un warehouse, ad esempio, trovare viste di informazioni dettagliate sulle query in Schemi, queryinsights, Viste.

Screenshot di Fabric Explorer che mostra dove trovare viste di informazioni dettagliate sulle query in Schemi, queryinsights, Viste.

Al termine dell'esecuzione della query, i relativi dati di esecuzione sono visualizzati nelle queryinsights visualizzazioni dell'endpoint di analisi SQL o warehouse a cui si è connessi. Se si esegue una query tra database nel contesto di WH_2, la query viene visualizzata nelle informazioni dettagliate sulle query di WH_2. Le query completate possono richiedere fino a 15 minuti per essere visualizzate in informazioni dettagliate sulle query a seconda del carico di lavoro simultaneo in esecuzione. Il tempo impiegato per la visualizzazione delle query nelle informazioni dettagliate sulle query aumenta con l'aumento delle query simultanee eseguite.

Come vengono aggregate query simili per generare informazioni dettagliate?

Le query vengono considerate uguali dalla funzionalità informazioni dettagliate query se, diverso dal valore del predicato, due query hanno una corrispondenza esatta nel testo della query. Gli spazi vuoti e i nuovi caratteri di riga eseguono il rendering delle query da considerare diversi.

È possibile usare la query hash colonna nelle viste per analizzare query simili ed eseguire il drill-down a ogni esecuzione.

Ad esempio, le query seguenti vengono considerate uguali dopo che i relativi predicati sono parametrizzati:

SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';

e

SELECT * FROM Orders
WHERE OrderDate BETWEEN '2000-07-01' AND '2006-07-31';

Esempi

Identificare le query eseguite dall'utente negli ultimi 30 minuti

La query seguente usa queryinsights.exec_requests_history e la funzione predefinita USER_NAME() , che restituisce il nome utente della sessione corrente.

SELECT * FROM queryinsights.exec_requests_history 
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();

Identificare le query eseguite più di frequente usando una sottostringa nel testo della query

La query seguente restituisce le query più recenti che corrispondono a una determinata stringa, ordinate in base al numero di esecuzioni riuscite decrescente.

SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;

Identificare le query con esecuzione prolungata usando una sottostringa nel testo della query

La query seguente restituisce le query che corrispondono a una determinata stringa, ordinate in base al tempo di esecuzione mediano della query decrescente.

SELECT * FROM queryinsights.long_running_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY median_total_elapsed_time_ms DESC;