Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2016 (13.x) és újabb verziók
felügyelt Azure SQL-példány
Dinamikus felügyeleti nézetek (DMV-k) használatával monitorozhatja a külső szkriptek (Python és R) végrehajtását, a használt erőforrásokat, diagnosztizálhatja a problémákat, és hangolhatja a teljesítményt az SQL Server Machine Learning Servicesben.
Ebben a cikkben az SQL Server Machine Learning Servicesre jellemző DMV-ket találja. A következő példákat tartalmazó lekérdezéseket is megtalálja:
- Gépi tanulás beállításai és konfigurációs beállításai
- Külső Python- vagy R-szkripteket futtató aktív munkamenetek
- A Python és az R külső futtatókörnyezetének végrehajtási statisztikái
- Külső szkriptek teljesítményszámlálói
- Az operációs rendszer, az SQL Server és a külső erőforráskészletek memóriahasználata
- Memóriakonfiguráció SQL Serverhez és külső erőforráskészletekhez
- Resource Governor-erőforráskészletek, beleértve a külső erőforráskészleteket is
- Telepített csomagok Pythonhoz és R-hez
A DMV-kkel kapcsolatos általános információkért lásd: Rendszerdinamikai felügyeleti nézetek.
Jótanács
Az egyéni jelentéseket az SQL Server Machine Learning Services monitorozására is használhatja. További információ: Gépi tanulás monitorozása egyéni jelentések használatával a Management Studióban.
Dinamikus felügyeleti nézetek
Az alábbi dinamikus felügyeleti nézetek használhatók az SQL Server gépi tanulási számítási feladatainak monitorozásához. A DMV-k lekérdezéséhez engedélyre van szüksége VIEW SERVER STATE a példányon.
| Dinamikus felügyeleti nézet | Típus | Description |
|---|---|---|
| sys.dm_external_script_requests | Execution | Egy sort ad vissza minden olyan aktív feldolgozói fiókhoz, amely külső szkriptet futtat. |
| sys.dm_external_script_execution_stats | Execution | Egy sort ad vissza a külső szkriptkérelmek minden típusához. |
| sys.dm_os_performance_counters | Execution | A kiszolgáló által fenntartott teljesítményszámlálónkénti sort adja vissza. Ha a keresési feltételt WHERE object_name LIKE '%External Scripts%'használja, ezekkel az információkkal megtekintheti, hogy hány szkript futott, mely szkripteket futtatták a hitelesítési módban, vagy hogy összesen hány R- vagy Python-hívást adtak ki a példányon. |
| sys.dm_resource_governor_external_resource_pools | Erőforrás-szabályozó | A Resource Governor aktuális külső erőforráskészlet-állapotára, az erőforráskészletek aktuális konfigurációjára és az erőforráskészlet statisztikáira vonatkozó információkat adja vissza. |
| sys.dm_resource_governor_external_resource_pool_affinity | Erőforrás-szabályozó | A cpu affinitási adatait adja vissza a Resource Governor aktuális külső erőforráskészlet-konfigurációjáról. Ütemezőnként egy sort ad vissza az SQL Serveren, ahol minden ütemező egy egyéni processzorhoz van hozzárendelve. Ezzel a nézetben figyelheti az ütemező állapotát, vagy azonosíthatja az elszabadult feladatokat. |
Az SQL Server-példányok monitorozásával kapcsolatos információkért lásd a katalógusnézeteket és az erőforrás-kormányzóval kapcsolatos dinamikus felügyeleti nézeteket.
Beállítások és konfiguráció
Tekintse meg a Machine Learning Services telepítési beállításait és konfigurációs beállításait.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt nézetekről és függvényekről további információt a sys.dm_server_registry, a sys.configurations és a SERVERPROPERTY című témakörben talál.
SELECT CAST(SERVERPROPERTY('IsAdvancedAnalyticsInstalled') AS INT) AS IsMLServicesInstalled
, CAST(value_in_use AS INT) AS ExternalScriptsEnabled
, COALESCE(SIGN(SUSER_ID(CONCAT (
CAST(SERVERPROPERTY('MachineName') AS NVARCHAR(128))
, '\SQLRUserGroup'
, CAST(serverproperty('InstanceName') AS NVARCHAR(128))
))), 0) AS ImpliedAuthenticationEnabled
, COALESCE((
SELECT CAST(r.value_data AS INT)
FROM sys.dm_server_registry AS r
WHERE r.registry_key LIKE 'HKLM\Software\Microsoft\Microsoft SQL Server\%\SuperSocketNetLib\Tcp'
AND r.value_name = 'Enabled'
), - 1) AS IsTcpEnabled
FROM sys.configurations
WHERE name = 'external scripts enabled';
A lekérdezés a következő oszlopokat adja vissza:
| oszlop | Description |
|---|---|
| IsMLServicesInstalled | 1 értéket ad vissza, ha az SQL Server Machine Learning Services telepítve van a példányhoz. Ellenkező esetben 0 értéket ad vissza. |
| KülsőSzkriptekEngedélyezve | 1-et ad vissza, ha a külső script-ek engedélyezve vannak a példányhoz. Ellenkező esetben 0 értéket ad vissza. |
| HallgatólagosHitelesítésEngedélyezve | 1 értéket ad vissza, ha engedélyezve van a hallgatólagos hitelesítés. Ellenkező esetben 0 értéket ad vissza. A vélelmezett hitelesítés konfigurációját a rendszer ellenőrzi, hogy létezik-e bejelentkezés az SQLRUserGroup-hoz. |
| TCP engedélyezve | 1 értéket ad vissza, ha a TCP/IP protokoll engedélyezve van a példányhoz. Ellenkező esetben 0 értéket ad vissza. További információkért lásd: Alapértelmezett SQL Server hálózati protokoll konfiguráció. |
Aktív munkamenetek
Tekintse meg a külső szkripteket futtató aktív munkameneteket.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt dinamikus felügyeleti nézetekkel kapcsolatos további információkért lásd: sys.dm_exec_requests, sys.dm_external_script_requests és sys.dm_exec_sessions.
SELECT r.session_id, r.blocking_session_id, r.status, DB_NAME(s.database_id) AS database_name
, s.login_name, r.wait_time, r.wait_type, r.last_wait_type, r.total_elapsed_time, r.cpu_time
, r.reads, r.logical_reads, r.writes, er.language, er.degree_of_parallelism, er.external_user_name
FROM sys.dm_exec_requests AS r
INNER JOIN sys.dm_external_script_requests AS er
ON r.external_script_request_id = er.external_script_request_id
INNER JOIN sys.dm_exec_sessions AS s
ON s.session_id = r.session_id;
A lekérdezés a következő oszlopokat adja vissza:
| oszlop | Description |
|---|---|
| munkamenet_azonosító | Azonosítja az egyes aktív elsődleges kapcsolatokhoz társított munkamenetet. |
| blokkoló_munkamenet_azonosító (blocking_session_id) | A kérést blokkoló munkamenet azonosítója. Ha ez az oszlop NULL értékű, a kérés nincs letiltva, vagy a blokkoló munkamenet munkamenetadatai nem érhetők el (vagy nem azonosíthatók). |
| állapot | A kérés állapota. |
| Adatbázis_név | Az egyes munkamenetek aktuális adatbázisának neve. |
| felhasználói név | AZ SQL Server bejelentkezési neve, amely alatt a munkamenet jelenleg fut. |
| várakozási idő | Ha a kérés jelenleg le van tiltva, ez az oszlop az aktuális várakozás időtartamát adja vissza ezredmásodpercben. Nem lehet null értékű. |
| várakozási_típus | Ha a kérés jelenleg le van tiltva, ez az oszlop a várakozás típusát adja vissza. A várakozási típusokkal kapcsolatos információkért lásd: sys.dm_os_wait_stats. |
| last_wait_type | Ha ez a kérés korábban le lett tiltva, ez az oszlop az utolsó várakozás típusát adja vissza. |
| összesített eltelt idő | A kérés megérkezése óta eltelt teljes idő ezredmásodpercben eltelt. |
| CPU idő | A kérelem által használt processzoridő ezredmásodpercben. |
| olvasások | A kérés által végrehajtott olvasások száma. |
| logikai_olvasások | A kérelem által végrehajtott logikai olvasások száma. |
| írások | A kérés által végrehajtott írások száma. |
| nyelv | Támogatott szkriptnyelvet képviselő kulcsszó. |
| párhuzamosság_foka | A létrehozott párhuzamos folyamatok számát jelző szám. Ez az érték eltérhet a kért párhuzamos folyamatok számától. |
| külső_felhasználónév | Az a Windows-feldolgozófiók, amely alatt a szkript végrehajtása megtörtént. |
Végrehajtási statisztikák
Tekintse meg az R és Python külső futtatókörnyezetének végrehajtási statisztikáit. Jelenleg csak a RevoScaleR, a revoscalepy vagy a microsoftml csomagfüggvények statisztikái érhetők el.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt dinamikus felügyeleti nézettel kapcsolatos további információkért lásd: sys.dm_external_script_execution_stats. A lekérdezés csak azokat a függvényeket adja vissza, amelyek többször lettek végrehajtva.
SELECT language, counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE counter_value > 0
ORDER BY language, counter_name;
A lekérdezés a következő oszlopokat adja vissza:
| oszlop | Description |
|---|---|
| nyelv | A regisztrált külső szkriptnyelv neve. |
| számláló_név | Regisztrált külső szkriptfüggvény neve. |
| számláló_érték | A kiszolgálón a regisztrált külső szkriptfüggvényt meghívó összes példány száma. Ez az érték összegző, kezdve a szolgáltatás példányra való telepítésének időpontjától, és nem állítható vissza. |
Teljesítmény számlálók
Tekintse meg a külső szkriptek végrehajtásához kapcsolódó teljesítményszámlálókat.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt dinamikus felügyeleti nézettel kapcsolatos további információkért lásd: sys.dm_os_performance_counters.
SELECT counter_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%External Scripts%'
sys.dm_os_performance_counters a következő teljesítményszámlálókat adja ki külső szkriptekhez:
| Counter | Description |
|---|---|
| Összes végrehajtás | A helyi vagy távoli hívások által indított külső folyamatok száma. |
| Párhuzamos végrehajtások | Azon esetek száma, amikor egy szkript tartalmazza a @parallel specifikációt, és hogy az SQL Server képes volt párhuzamos lekérdezési tervet létrehozni és használni. |
| Streamelési végrehajtások | A streamelési szolgáltatás meghívásának száma. |
| SQL CC végrehajtások | Azon külső szkriptek száma, ahol a hívást távolról példányosították, és az SQL Servert használták számítási környezetként. |
| Implikált hitelesítési bejelentkezések | Az ODBC loopback hívások száma hallgatólagos hitelesítéssel; vagyis az SQL Server a parancsprogram-kérelmet küldő felhasználó nevében hajtotta végre a hívásokat. |
| Teljes végrehajtási idő (ms) | A hívás és a hívás befejezése között eltelt idő. |
| Végrehajtási hibák | A szkriptek által jelentett hibák száma. Ez a szám nem tartalmaz R- vagy Python-hibákat. |
Memóriahasználat
Az operációs rendszer, az SQL Server és a külső készletek által használt memóriával kapcsolatos információk megtekintése.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt dinamikus felügyeleti nézetekről további információt sys.dm_resource_governor_external_resource_pools éssys.dm_os_sys_info talál.
SELECT physical_memory_kb, committed_kb
, (SELECT SUM(peak_memory_kb)
FROM sys.dm_resource_governor_external_resource_pools AS ep
) AS external_pool_peak_memory_kb
FROM sys.dm_os_sys_info;
A lekérdezés a következő oszlopokat adja vissza:
| oszlop | Description |
|---|---|
| fizikai_memória_kb | A fizikai memória teljes mennyisége a gépen. |
| foglalt_kilobájt | A véglegesített memória kilobájtban (KB) a memóriakezelőben. Nem tartalmaz fenntartott memóriát a memóriakezelőben. |
| külső_készlet_csúcs_memória_kb | Az összes külső erőforráskészlethez felhasznált memória maximális mennyisége kilobájtban. |
Memóriakonfiguráció
Az SQL Server és a külső erőforráskészletek maximális memória-konfigurációjának százalékban kifejezett adatait tekintheti meg. Ha az SQL Server az alapértelmezett értékkel max server memory (MB)fut, akkor az operációs rendszer memóriájának 100% tekinthető.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt nézetekről további információt a sys.configurations és a sys.dm_resource_governor_external_resource_pools című témakörben talál.
SELECT 'SQL Server' AS name
, CASE CAST(c.value AS BIGINT)
WHEN 2147483647 THEN 100
ELSE (SELECT CAST(c.value AS BIGINT) / (physical_memory_kb / 1024.0) * 100 FROM sys.dm_os_sys_info)
END AS max_memory_percent
FROM sys.configurations AS c
WHERE c.name LIKE 'max server memory (MB)'
UNION ALL
SELECT CONCAT ('External Pool - ', ep.name) AS pool_name, ep.max_memory_percent
FROM sys.dm_resource_governor_external_resource_pools AS ep;
A lekérdezés a következő oszlopokat adja vissza:
| oszlop | Description |
|---|---|
| név | A külső erőforráskészlet vagy az SQL Server neve. |
| max_memória_százalék | Az SQL Server vagy a külső erőforráskészlet által használható maximális memória. |
Erőforráskészletek
Az SQL Server Resource Governorben az erőforráskészlet egy példány fizikai erőforrásainak egy részhalmazát jelöli. Megadhatja, hogy a bejövő alkalmazáskérelmek mennyi processzort, fizikai I/O-t és memóriát igényelhetnek, beleértve a külső szkriptek végrehajtását is az erőforráskészleten belül. Tekintse meg az SQL Serverhez és a külső szkriptekhez használt erőforráskészleteket.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A használt dinamikus felügyeleti nézetekről további információt sys.dm_resource_governor_resource_pools éssys.dm_resource_governor_external_resource_pools talál.
SELECT CONCAT ('SQL Server - ', p.name) AS pool_name
, p.total_cpu_usage_ms, p.read_io_completed_total, p.write_io_completed_total
FROM sys.dm_resource_governor_resource_pools AS p
UNION ALL
SELECT CONCAT ('External Pool - ', ep.name) AS pool_name
, ep.total_cpu_user_ms, ep.read_io_count, ep.write_io_count
FROM sys.dm_resource_governor_external_resource_pools AS ep;
A lekérdezés a következő oszlopokat adja vissza:
| oszlop | Description |
|---|---|
| pool_name | Az erőforráskészlet neve. Az SQL Server erőforráskészletek előtaggal SQL Server vannak ellátva, míg a külső erőforráskészletek előtagja External Pool. |
| teljes_cpu_felhasználás_órák | A Resource Governor statisztikáinak alaphelyzetbe állítása óta eltelt ezredmásodpercben összesített CPU-használat. |
| read_io_teljesítve_összesen | A Resource Governor statisztikáinak visszaállítása óta befejeződött az összes olvasási I/O. |
| írás_io_befejezett_összesen | A Resource Governor statisztikáinak alaphelyzetbe állítása óta befejeződött az összes írási I/O. |
Telepített csomagok
Az SQL Server Machine Learning Services-ben telepített R- és Python-csomagokat megtekintheti egy olyan R- vagy Python-szkript futtatásával, amely ezek listáját adja eredményül.
Telepített csomagok az R-hez
Tekintse meg az SQL Server Machine Learning Servicesben telepített R-csomagokat.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A lekérdezés egy R-szkripttel határozza meg az SQL Serverrel telepített R-csomagokat.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
OutputDataSet <- data.frame(installed.packages()[,c("Package", "Version", "Depends", "License", "LibPath")]);'
WITH result sets((Package NVARCHAR(255), Version NVARCHAR(100), Depends NVARCHAR(4000)
, License NVARCHAR(1000), LibPath NVARCHAR(2000)));
A visszaadott oszlopok a következők:
| oszlop | Description |
|---|---|
| Package | A telepített csomag neve. |
| verzió | A csomag verziója. |
| Attól függ. | Felsorolja azokat a csomagokat, amelyektől a telepített csomag függ. |
| Licenc | A telepített csomag licence. |
| LibPath | Könyvtár, ahol megtalálhatja a csomagot. |
Telepített csomagok Pythonhoz
Tekintse meg az SQL Server Machine Learning Servicesben telepített Python-csomagokat.
Futtassa az alábbi lekérdezést a kimenet lekéréséhez. A lekérdezés egy Python-szkripttel határozza meg az SQL Serverrel telepített Python-csomagokat.
EXECUTE sp_execute_external_script @language = N'Python'
, @script = N'
import pkg_resources
import pandas
OutputDataSet = pandas.DataFrame(sorted([(i.key, i.version, i.location) for i in pkg_resources.working_set]))'
WITH result sets((Package NVARCHAR(128), Version NVARCHAR(128), Location NVARCHAR(1000)));
A visszaadott oszlopok a következők:
| oszlop | Description |
|---|---|
| Package | A telepített csomag neve. |
| verzió | A csomag verziója. |
| Elhelyezkedés | Könyvtár, ahol megtalálhatja a csomagot. |