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:
queryinsights.exec_requests_history (Transact-SQL)
- Vrátí informace o každém dokončeného požadavku nebo dotazu SQL.
queryinsights.exec_sessions_history (Transact-SQL)
- Vrátí informace o dokončených relacích.
queryinsights.long_running_queries (Transact-SQL)
- Vrátí informace o dotazech podle doby provádění dotazu.
queryinsights.frequently_run_queries (Transact-SQL)
- Vrátí informace o často spouštěných dotazech.
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.
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_2
dotazu, zobrazí se dotaz v přehledech WH_2
dotazu . 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_mb
porovná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;