Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Managed Instance
Använd dynamiska hanteringsvyer (DMV:er) för att övervaka körningen av externa skript (Python och R), resurser som används, diagnostisera problem och finjustera prestanda i SQL Server Machine Learning Services.
I den här artikeln hittar du de DMV:er som är specifika för SQL Server Machine Learning Services. Du hittar även exempelfrågor som visar:
- Inställningar och konfigurationsalternativ för maskininlärning
- Aktiva sessioner som kör externa Python- eller R-skript
- Körningsstatistik för den externa miljön för Python och R
- Prestandaräknare för externa skript
- Minnesanvändning för operativsystemet, SQL Server och externa resurspooler
- Minneskonfiguration för SQL Server och externa resurspooler
- Resurspooler för Resource Governor, inklusive externa resurspooler
- Installerade paket för Python och R
Mer allmän information om DMV:er finns i Vyer för dynamisk hantering av system.
Tips/Råd
Du kan också använda anpassade rapporter för att övervaka SQL Server Machine Learning Services. Mer information finns i Övervaka maskininlärning med anpassade rapporter i Management Studio.
Dynamiska hanteringsvyer
Följande dynamiska hanteringsvyer kan användas vid övervakning av maskininlärningsarbetsbelastningar i SQL Server. Om du vill köra frågor mot DMV:erna behöver VIEW SERVER STATE du behörighet för instansen.
| Dynamisk hanteringsvy | Typ | Description |
|---|---|---|
| sys.dm_external_script_requests | Execution | Returnerar en rad för varje aktivt arbetskonto som kör ett externt skript. |
| sys.dm_external_script_execution_stats | Execution | Returnerar en rad för varje typ av extern skriptbegäran. |
| sys.dm_os_performance_counters | Execution | Returnerar en rad per prestandaräknare som underhålls av servern. Om du använder sökvillkoret WHERE object_name LIKE '%External Scripts%'kan du använda den här informationen för att se hur många skript som kördes, vilka skript som kördes med vilket autentiseringsläge eller hur många R- eller Python-anrop som utfärdades på instansen totalt sett. |
| sys.dm_resource_governor_external_resource_pools | Resursguvernör | Returnerar information om det aktuella externa resurspooltillståndet i Resource Governor, den aktuella konfigurationen av resurspooler och resurspoolsstatistik. |
| sys.dm_resource_governor_external_resource_pool_affinity | Resursguvernör | Returnerar cpu-tillhörighetsinformation om den aktuella konfigurationen av den externa resurspoolen i Resource Governor. Returnerar en rad per schemaläggare i SQL Server där varje schemaläggare mappas till en enskild processor. Använd den här vyn för att övervaka status för en schemaläggare eller för att identifiera okontrollerade uppgifter. |
Information om övervakning av SQL Server-instanser finns i Katalogvyer och Resource Governor-relaterade dynamiska hanteringsvyer.
Inställningar och konfiguration
Visa installationsinställningen och konfigurationsalternativen för Machine Learning Services.
Kör frågan nedan för att hämta utdata. Mer information om de vyer och funktioner som används finns i sys.dm_server_registry, sys.configurations och SERVERPROPERTY.
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';
Frågan returnerar följande kolumner:
| Kolumn | Description |
|---|---|
| IsMLServicesInstalled | Returnerar 1 om SQL Server Machine Learning Services är installerat för instansen. Annars returnerar det 0. |
| ExternaSkriptAktiverat | Returnerar 1 om externa skript är aktiverade för instansen. Annars returneras 0. |
| ImplicitAutentiseringAktiverad | Returnerar 1 om underförstådd autentisering är aktiverat. Annars returneras 0. Konfigurationen för underförstådd autentisering kontrolleras genom att kontrollera om det finns en inloggning för SQLRUserGroup. |
| IsTcpEnabled | Returnerar 1 om TCP/IP-protokollet är aktiverat för instansen. Annars returneras 0. Mer information finns i Sql Server Network Protocol-standardkonfiguration. |
Aktiva sessioner
Visa aktiva sessioner som kör externa skript.
Kör frågan nedan för att hämta utdata. Mer information om de dynamiska hanteringsvyer som används finns i sys.dm_exec_requests, sys.dm_external_script_requests och 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;
Frågan returnerar följande kolumner:
| Kolumn | Description |
|---|---|
| session_id | Identifierar den session som är associerad med varje aktiv primär anslutning. |
| blocking_session_id | ID för sessionen som blockerar begäran. Om den här kolumnen är NULL blockeras inte begäran eller sessionsinformationen för den blockerande sessionen är inte tillgänglig (eller kan inte identifieras). |
| status | Status för begäran. |
| databasnamn | Namnet på den aktuella databasen för varje session. |
| inloggningsnamn | SQL Server-inloggningsnamn som sessionen körs under. |
| väntetid | Om begäran för närvarande är blockerad returnerar den här kolumnen varaktigheten i millisekunder, för den aktuella väntetiden. Får inte vara ogiltig. |
| wait_type | Om begäran för närvarande är blockerad returnerar den här kolumnen typen av väntan. Information om typer av väntetider finns i sys.dm_os_wait_stats. |
| last_wait_type | Om den här begäran tidigare har blockerats returnerar den här kolumnen typen av sista väntan. |
| total_tidåtgång | Total tid som förflutit i millisekunder sedan begäran kom. |
| CPU-tid | CPU-tid i millisekunder som används av begäran. |
| läsningar | Antal läsningar som utförs av den här begäran. |
| logical_reads | Antal logiska läsningar som har utförts av begäran. |
| skrivningar | Antal skrivningar som utförs av den här begäran. |
| Språk | Nyckelord som representerar ett skriptspråk som stöds. |
| grad_av_parallelism | Tal som anger antalet parallella processer som har skapats. Det här värdet kan skilja sig från antalet parallella processer som begärdes. |
| external_user_name | Det Windows-arbetskonto under vilket skriptet kördes. |
Körningsstatistik
Visa körningsstatistiken för den externa körmiljön för R och Python. För närvarande är endast statistik över revoScaleR-, revoscalepy- eller microsoftml-paketfunktioner tillgängliga.
Kör frågan nedan för att hämta utdata. Mer information om den dynamiska hanteringsvy som används finns i sys.dm_external_script_execution_stats. Frågan returnerar bara funktioner som har körts mer än en gång.
SELECT language, counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE counter_value > 0
ORDER BY language, counter_name;
Frågan returnerar följande kolumner:
| Kolumn | Description |
|---|---|
| Språk | Namnet på det registrerade externa skriptspråket. |
| räknarenamn | Namnet på en registrerad extern skriptfunktion. |
| räknarvärde | Totalt antal gånger som den registrerade externa skriptfunktionen har anropats på servern. Det här värdet är kumulativt, från och med den tid då funktionen installerades på instansen och kan inte återställas. |
Prestandaräknare
Visa prestandaräknarna som är relaterade till körningen av externa skript.
Kör frågan nedan för att hämta utdata. Mer information om den dynamiska hanteringsvy som används finns i 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 matar ut följande prestandaräknare för externa skript:
| Counter | Description |
|---|---|
| Totalt antal exekveringar | Antal externa processer som startats av lokala eller fjärranslutna anrop. |
| Parallella körningar | Antal gånger som ett skript inkluderade @parallel-specifikationen och att SQL Server kunde generera och använda en parallell frågeplan. |
| Utföranden av direktuppspelning | Antal gånger som strömningsfunktionen har anropats. |
| SQL CC-körningar | Antalet externa skript körs där anropet instansierades via fjärranslutning och SQL Server användes som beräkningskontext. |
| Implicit autentisering. Inloggningar | Antal gånger som ett ODBC-loopback-anrop gjordes med underförstådd autentisering. DET VILL SÄGA, SQL Server körde anropet för användaren som skickade skriptbegäran. |
| Total exekveringstid (ms) | Tiden som förflutit mellan anropet och slutförandet av samtalet. |
| Körningsfel | Antal gånger skript rapporterade fel. Det här antalet inkluderar inte R- eller Python-fel. |
Minnesanvändning
Visa information om det minne som används av operativsystemet, SQL Server och de externa poolerna.
Kör frågan nedan för att hämta utdata. Mer information om de dynamiska hanteringsvyer som används finns i sys.dm_resource_governor_external_resource_pools och sys.dm_os_sys_info.
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;
Frågan returnerar följande kolumner:
| Kolumn | Description |
|---|---|
| physical_memory_kb | Den totala mängden fysiskt minne på datorn. |
| committed_kb | Det incheckade minnet i kilobyte (KB) i minneshanteraren. Inkluderar inte reserverat minne i minneshanteraren. |
| external_pool_peak_memory_kb | Summan av den maximala mängden minne som används i kilobyte för alla externa resurspooler. |
Minneskonfiguration
Visa information om den maximala minneskonfigurationen i procent av SQL Server och externa resurspooler. Om SQL Server körs med standardvärdet max server memory (MB)anses den vara 100% av OS-minnet.
Kör frågan nedan för att hämta utdata. Mer information om de vyer som används finns i sys.configurations och sys.dm_resource_governor_external_resource_pools.
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;
Frågan returnerar följande kolumner:
| Kolumn | Description |
|---|---|
| name | Namnet på den externa resurspoolen eller SQL Server. |
| max_memory_percent | Det maximala minne som SQL Server eller den externa resurspoolen kan använda. |
Resurspooler
I SQL Server Resource Governor representerar en resurspool en delmängd av de fysiska resurserna för en instans. Du kan ange gränser för hur mycket PROCESSOR, fysisk I/O och minne som inkommande programbegäranden, inklusive körning av externa skript, kan använda i resurspoolen. Visa de resurspooler som används för SQL Server och externa skript.
Kör frågan nedan för att hämta utdata. Mer information om de dynamiska hanteringsvyer som används finns i sys.dm_resource_governor_resource_pools och sys.dm_resource_governor_external_resource_pools.
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;
Frågan returnerar följande kolumner:
| Kolumn | Description |
|---|---|
| pool_name | Namnet på resurspoolen. SQL Server-resurspooler är prefixerade med SQL Server och externa resurspooler är prefixerade med External Pool. |
| total_cpu_användningstimmar | Den kumulativa CPU-användningen i millisekunder sedan resource governor-statistiken återställdes. |
| läs_io_slutfört_totalt | Antalet slutförda läs-I/O-operationer sedan statistiken för Resource Governor återställdes. |
| skriv_io_avslutade_totalt | Totalt antal skriv-I/O:er har slutförts sedan resource governor-statistiken återställdes. |
Installerade paket
Du kan visa R- och Python-paketen som är installerade i SQL Server Machine Learning Services genom att köra ett R- eller Python-skript som matar ut dessa.
Installerade paket för R
Visa R-paketen som är installerade i SQL Server Machine Learning Services.
Kör frågan nedan för att hämta utdata. Frågan använder ett R-skript för att fastställa R-paket som är installerade med SQL Server.
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)));
De kolumner som returneras är:
| Kolumn | Description |
|---|---|
| Package | Namnet på det installerade paketet. |
| Utgåva | Version av paketet. |
| Det beror på | Visar de paket som det installerade paketet är beroende av. |
| Licens | Licens för det installerade paketet. |
| LibPath | Katalog där du hittar paketet. |
Installerade paket för Python
Visa Python-paketen som är installerade i SQL Server Machine Learning Services.
Kör frågan nedan för att hämta utdata. Frågan använder ett Python-skript för att fastställa de Python-paket som är installerade med SQL Server.
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)));
De kolumner som returneras är:
| Kolumn | Description |
|---|---|
| Package | Namnet på det installerade paketet. |
| Utgåva | Version av paketet. |
| Plats | Katalog där du hittar paketet. |