Kapcsolatok, munkamenetek és kérések monitorozása DMV-k használatával
A következőkre vonatkozik:✅ SQL Analytics-végpont és Warehouse a Microsoft Fabricben
A meglévő dinamikus felügyeleti nézetek (DMV-k) használatával figyelheti a kapcsolat, a munkamenet és a kérések állapotát a Microsoft Fabricben. A T-SQL-lekérdezések végrehajtásának eszközeiről és módszereiről további információt a Warehouse lekérdezése című témakörben talál.
Kapcsolatok, munkamenetek és kérések monitorozása lekérdezési életciklusÚ DMV-k használatával
Az aktuális verzióhoz három dinamikus felügyeleti nézet (DMV) érhető el, amelyek segítségével élő SQL-lekérdezések életciklus-elemzéseket kaphat.
- sys.dm_exec_connections
- Adatokat ad vissza a raktár és a motor közötti kapcsolatról.
- sys.dm_exec_sessions
- Adatokat ad vissza az elem és a motor között hitelesített munkamenetekről.
- sys.dm_exec_requests
- Adatokat ad vissza a munkamenet minden aktív kéréséről.
Ez a három DMV részletes betekintést nyújt a következő forgatókönyvekbe:
- Ki az a felhasználó, aki a munkamenetet futtatja?
- Mikor indította el a munkamenetet a felhasználó?
- Mi az adattárházhoz való kapcsolat azonosítója és a kérést futtató munkamenet?
- Hány lekérdezés fut aktívan?
- Mely lekérdezések futnak hosszú ideig?
Ebben az oktatóanyagban megtudhatja, hogyan monitorozhatja a futó SQL-lekérdezéseket dinamikus felügyeleti nézetek (DMV-k) használatával.
Példa DMV-lekérdezésekre
Az alábbi példa lekérdezi sys.dm_exec_sessions
az összes jelenleg futtatott munkamenetet.
SELECT *
FROM sys.dm_exec_sessions;
Kapcsolatok és munkamenetek közötti kapcsolat megkeresése
Az alábbi példa egy adott kapcsolat aktív munkamenete közötti kapcsolathoz csatlakozik sys.dm_exec_connections
sys.dm_exec_sessions
.
SELECT connections.connection_id,
connections.connect_time,
sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
ON connections.session_id=sessions.session_id;
Hosszú ideig futó lekérdezés azonosítása és MEGÖLése
Ez az első lekérdezés a hosszú ideig futó lekérdezések listáját azonosítja annak sorrendjében, hogy a lekérdezés a leghosszabb ideig tart a lekérdezés megérkezése óta.
SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;
Ez a második lekérdezés azt mutatja be, hogy melyik felhasználó futtatta a hosszú ideig futó lekérdezést tartalmazó munkamenetet.
SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';
Ez a harmadik lekérdezés bemutatja, hogyan használhatja a KILL parancsot a session_id
hosszú ideig futó lekérdezéssel.
KILL 'SESSION_ID WITH LONG-RUNNING QUERY'
Példa:
KILL '101'
Engedélyek
- A rendszergazda mindhárom DMV végrehajtásához (
sys.dm_exec_connections
,sys.dm_exec_sessions
,sys.dm_exec_requests
) rendelkezik engedéllyel a saját és mások adatainak egy munkaterületen belüli megtekintéséhez. - A tagok, közreműködők és megtekintők végrehajthatják
sys.dm_exec_sessions
éssys.dm_exec_requests
megtekinthetik a saját eredményeiket a raktárban, de nincs engedélye a végrehajtásrasys.dm_exec_connections
. - Csak egy rendszergazda rendelkezik engedéllyel a
KILL
parancs futtatásához.