Sdílet prostřednictvím


Dotazování přehledů v datových skladech v prostředcích infrastruktury

Platí pro:✅ Koncový bod sql Analytics a sklad v Microsoft Fabric

V Microsoft Fabric je funkce přehledů dotazů škálovatelné, udržitelné a rozšiřitelné řešení, které vylepšuje možnosti analýzy SQL. Díky historickým datům dotazů, agregovaným přehledům a přístupu k vlastnímu textu dotazu můžete analyzovat a ladit výkon dotazů. QI poskytuje informace o dotazech spuštěných pouze v kontextu uživatele, systémové dotazy se nepovažují.

Funkce přehledů dotazů poskytuje centrální umístění pro historická data dotazů a užitečné přehledy po dobu 30 dnů, což vám pomáhá činit informovaná rozhodnutí o zvýšení výkonu datového skladu nebo koncového bodu analýzy SQL. Když se dotaz SQL spustí v Microsoft Fabric, funkce přehledů dotazů shromáždí a shromáždí její spouštěcí data a poskytne vám cenné informace. Úplný text dotazu pro role správce, člena a přispěvatele můžete zobrazit.

  • Historická data dotazů: Funkce přehledů dotazů ukládá historická data o provádění dotazů, což umožňuje sledovat změny výkonu v průběhu času. Systémové dotazy se neukládají do přehledů dotazů.
  • Agregované přehledy: Funkce přehledů dotazů agreguje data spouštění dotazů do přehledů, které jsou vhodnější, například identifikace dlouhotrvajících dotazů nebo většina aktivních uživatelů. Tyto agregace jsou založené na tvaru dotazu. Další informace najdete v tématu Jak jsou podobné dotazy agregované za účelem generování přehledů?

Než začnete

Měli byste mít přístup ke koncovému bodu sql Analytics nebo skladu v pracovním prostoru kapacity Premium s oprávněními přispěvatele nebo vyššími oprávněními.

Kdy potřebujete přehledy dotazů?

Funkce Query Insights řeší několik otázek a obav souvisejících s výkonem dotazů a optimalizací databáze, mezi které patří:

Analýza výkonu dotazů

  • Jaký je historický výkon našich dotazů?
  • Jsou nějaké dlouhotrvající dotazy, které vyžadují pozornost?
  • Můžeme identifikovat dotazy, které způsobují kritické body výkonu?
  • Využila se mezipaměť pro moje dotazy?
  • Které dotazy využívají nejvíce procesoru?

Optimalizace a ladění dotazů

  • Které dotazy se často spouštějí a dají se zlepšit jejich výkon?
  • Můžeme identifikovat dotazy, které selhaly nebo byly zrušeny?
  • Můžeme sledovat změny výkonu dotazů v průběhu času?
  • Existují nějaké dotazy, které konzistentně fungují špatně?

Monitorování aktivit uživatelů

  • Kdo odeslal konkrétní dotaz?
  • Kdo jsou nejaktivnější uživatelé nebo uživatelé s nejdéle běžícími dotazy?

Existují tři systémová zobrazení, která poskytují odpovědi na tyto otázky:

Kde můžete zobrazit přehledy dotazů?

Automaticky vygenerovaná zobrazení jsou ve schématu v queryinsights analýzy SQL a ve službě Warehouse. V Průzkumníku prostředků infrastruktury skladu například vyhledejte zobrazení přehledů dotazů v části Schémata, queryinsights, Views.

Snímek obrazovky z Průzkumníka prostředků infrastruktury ukazující, kde najít zobrazení přehledů dotazů v části Schémata, dotazování a zobrazení

Po dokončení provádění dotazu uvidíte její data spuštění v queryinsights zobrazeních koncového bodu Warehouse nebo SQL Analytics, ke kterému jste byli připojení. Pokud spustíte dotaz mezi databázemi v kontextu WH_2dotazu, zobrazí se dotaz v přehledech WH_2dotazu . Zobrazení dokončených dotazů v přehledech dotazů v závislosti na souběžné úloze může trvat až 15 minut. Doba potřebná k zobrazení dotazů v přehledech dotazů se zvyšuje s nárůstem počtu spuštěných souběžných dotazů.

Jak se podobné dotazy agregují za účelem generování přehledů?

Dotazy jsou považovány za stejné pomocí Query Insights, pokud mají dotazy stejný tvar, i když se predikáty můžou lišit.

Sloupec v zobrazeních můžete využít query hash k analýze podobných dotazů a přechodu k podrobnostem jednotlivých spuštění.

Například následující dotazy jsou po parametrizaci predikátů považovány za stejné:

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

a

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

Příklady

Identifikace dotazů spuštěných vámi za posledních 30 minut

Následující dotaz používá queryinsights.exec_requests_history a předdefinovaná USER_NAME() funkce, která vrací vaše aktuální uživatelské jméno relace.

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

Identifikace dotazů s nejvyšším využitím procesoru podle času procesoru

Následující dotaz vrátí prvních 100 dotazů podle přiděleného času procesoru.

SELECT TOP 100 distributed_statement_id, query_hash, allocated_cpu_time_ms, label, command
FROM queryinsights.exec_requests_history
ORDER BY allocated_cpu_time_ms DESC;

Určení dotazů, které prohledávají většinu dat ze vzdáleného umístění, nikoli z mezipaměti

Můžete určit, jestli kontrola velkých dat během provádění dotazu zpomaluje váš dotaz, a rozhodnout se odpovídajícím způsobem upravit kód dotazu. Tato analýza umožňuje porovnat různé spuštění dotazů a zjistit, jestli rozptyl množství kontrolovaných dat je důvodem změn výkonu.

Kromě toho můžete posoudit použití mezipaměti prozkoumáním součtu data_scanned_memory_mb a data_scanned_disk_mbporovnáním s data_scanned_remote_storage_mb minulými spuštěními.

Poznámka:

Kontrolované hodnoty dat nemusí zohledňovat data přesunutá během průběžných fází provádění dotazů. V některých případech může být velikost dat přesunutých a procesor potřebných ke zpracování větší než hodnota naskenovaná daty.

SELECT distributed_statement_id, query_hash, data_scanned_remote_storage_mb, data_scanned_memory_mb, data_scanned_disk_mb, label, command
FROM queryinsights.exec_requests_history
ORDER BY data_scanned_remote_storage_mb DESC;

Identifikace nejčastěji spouštěných dotazů pomocí podřetědce v textu dotazu

Následující dotaz vrátí nejnovější dotazy, které odpovídají určitému řetězci seřazené podle počtu úspěšných spuštění sestupně.

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

Identifikace dlouhotrvajících dotazů pomocí podřetědce v textu dotazu

Následující dotaz vrátí dotazy, které odpovídají určitému řetězci seřazené podle mediánu času provádění dotazu sestupně.

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