Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Managed Instance
Pomocí zobrazení dynamické správy (DMV) můžete monitorovat spouštění externích skriptů (Python a R), používané prostředky, diagnostikovat problémy a ladit výkon ve službě SQL Server Machine Learning Services.
V tomto článku najdete dynamická správa zobrazení (DMVs) specifická pro SQL Server Machine Learning Services. Najdete zde také ukázkové dotazy, které ukazují:
- Možnosti nastavení a konfigurace pro strojové učení
- Aktivní relace běžící se spuštěnými externími skripty Pythonu nebo R
- Statistika spouštění pro externí modul runtime pro Python a R
- Čítače výkonu pro externí skripty
- Využití paměti pro operační systém, SQL Server a externí zdrojové fondy
- Konfigurace paměti pro SQL Server a fondy externích zdrojů
- Fondy zdrojů správce zdrojů, včetně externích fondů zdrojů
- Nainstalované balíčky pro Python a R
Další obecné informace o dynamických spravovacích pohledech systému najdete v tématu Dynamické spravovací pohledy systému.
Návod
Můžete také použít vlastní sestavy k monitorování služby SQL Server Machine Learning Services. Další informace najdete v tématu Monitorování strojového učení pomocí vlastních sestav v nástroji Management Studio.
Dynamická zobrazení správy
Při monitorování úloh strojového učení na SQL Serveru je možné použít následující zobrazení dynamické správy. K dotazování zobrazení dynamické správy potřebujete VIEW SERVER STATE oprávnění k instanci.
| Zobrazení dynamické správy | Typ | Description |
|---|---|---|
| sys.dm_external_script_requests | Execution | Vrátí řádek pro každý aktivní pracovní účet, na kterém běží externí skript. |
| sys.dm_external_script_execution_stats | Execution | Vrátí jeden řádek pro každý typ požadavku externího skriptu. |
| sys.dm_os_performance_counters | Execution | Vrátí řádek pro každý čítač výkonu spravovaný serverem. Pokud použijete vyhledávací podmínku WHERE object_name LIKE '%External Scripts%', můžete pomocí těchto informací zjistit, kolik skriptů se spustilo, které skripty se spustily pomocí jakého režimu ověřování nebo kolik volání R nebo Pythonu bylo vydáno v celé instanci. |
| sys.dm_resource_governor_external_resource_pools | Správce prostředků | Vrátí informace o aktuálním stavu fondu externích zdrojů ve správci zdrojů, aktuální konfiguraci fondů zdrojů a statistikách fondu zdrojů. |
| sys.dm_resource_governor_external_resource_pool_affinity | Správce prostředků | Vrátí informace o procesorové afinitnosti o aktuální konfiguraci fondu externích prostředků v Resource Governor. Vrátí jeden řádek na každý plánovač v SQL Serveru, kde je každý plánovač namapován na jednotlivý procesor. Toto zobrazení slouží ke sledování stavu plánovače nebo k identifikaci neovladatelných úloh. |
Informace o monitorování instancí SQL Server naleznete v tématu Zobrazení katalogu a Zobrazení dynamické správy související se správcem prostředků.
Nastavení a konfigurace
Zobrazení nastavení instalace a možnosti konfigurace služby Machine Learning Services.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitých zobrazeních a funkcích naleznete v tématu sys.dm_server_registry, sys.configurations a 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';
Dotaz vrátí následující sloupce:
| Sloupec | Description |
|---|---|
| IsMLServicesInstalled | Vrátí hodnotu 1, pokud je pro instanci nainstalovaná služba SQL Server Machine Learning Services. V opačném případě vrátí hodnotu 0. |
| PovolenéExterníSkripty | Vrátí hodnotu 1, pokud jsou pro instanci povoleny externí skripty. V opačném případě vrátí hodnotu 0. |
| ImpliedAuthenticationEnabled (Povolená Implicitní Autentizace) | Vrátí hodnotu 1, pokud je povolené implicitní ověřování. V opačném případě vrátí hodnotu 0. Konfigurace předpokládaného ověřování se kontroluje ověřením, jestli pro SQLRUserGroup existuje přihlášení. |
| JeTcpPovoleno | Vrátí hodnotu 1, pokud je pro instanci povolený protokol TCP/IP. V opačném případě vrátí hodnotu 0. Další informace naleznete v tématu Výchozí konfigurace protokolu SÍTĚ SYSTÉMU SQL Server. |
Aktivní relace
Zobrazte relace, ve kterých probíhají skripty z externích zdrojů.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitých zobrazeních dynamické správy najdete v tématu sys.dm_exec_requests, sys.dm_external_script_requests a 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;
Dotaz vrátí následující sloupce:
| Sloupec | Description |
|---|---|
| identifikátor_sezení | Identifikuje relaci přidruženou ke každému aktivnímu primárnímu připojení. |
| blocking_session_id | ID relace, která blokuje požadavek. Pokud je tento sloupec NULL, požadavek není blokován nebo informace o blokující relaci nejsou k dispozici (nebo ji nelze identifikovat). |
| stav | Stav žádosti |
| název databáze | Název aktuální databáze pro každou relaci. |
| přihlašovací_jméno | Přihlašovací jméno SQL Serveru, ve kterém se relace právě spouští. |
| čekací doba | Pokud je požadavek aktuálně blokovaný, vrátí tento sloupec dobu trvání v milisekundách aktuálního čekání. Není možné nastavit jako null. |
| Čekací_typ | Pokud je požadavek aktuálně blokovaný, vrátí tento sloupec typ čekání. Informace o typech čekání najdete v tématu sys.dm_os_wait_stats. |
| poslední_typ_čekání | Pokud byl tento požadavek dříve zablokovaný, vrátí tento sloupec typ posledního čekání. |
| celkový uplynulý čas | Celková doba uplynulá v milisekundách od přijetí požadavku. |
| čas CPU | Čas procesoru v milisekundách, který požadavek používá. |
| čtení | Počet čtení provedených tímto požadavkem |
| logické čtení (logical_reads) | Počet logickýchčteních |
| zápisy | Počet zápisů provedených tímto požadavkem |
| jazyk | Klíčové slovo, které představuje podporovaný skriptovací jazyk. |
| stupeň paralelismu | Číslo označující počet vytvořených paralelních procesů. Tato hodnota se může lišit od počtu požadovaných paralelních procesů. |
| externí_uživatelské_jméno | Pracovní účet Windows, ve kterém byl skript spuštěn. |
Statistika provádění
Zobrazte statistiku provádění pro externí modul runtime pro R a Python. Aktuálně jsou k dispozici pouze statistiky funkcí balíčků RevoScaleR, revoscalepy nebo microsoftml.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitém zobrazení dynamické správy najdete v tématu sys.dm_external_script_execution_stats. Dotaz vrací pouze funkce, které byly provedeny více než jednou.
SELECT language, counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE counter_value > 0
ORDER BY language, counter_name;
Dotaz vrátí následující sloupce:
| Sloupec | Description |
|---|---|
| jazyk | Název registrovaného jazyka externího skriptu |
| název_počítadla | Název registrované funkce externího skriptu |
| čítačová_hodnota | Celkový počet volání registrované funkce externího skriptu na serveru. Tato hodnota je kumulativní, počínaje časem, kdy byla funkce nainstalována v instanci, a nelze ji resetovat. |
Čítače výkonu
Prohlédněte si čítače výkonu související s prováděním externích skriptů.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitém zobrazení dynamické správy najdete v tématu 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 výstupem jsou následující čítače výkonu pro externí skripty:
| Counter | Description |
|---|---|
| Celkový počet spuštění | Počet externích procesů spuštěných místními nebo vzdálenými voláními |
| Paralelní spouštění | Kolikrát skript zahrnoval specifikaci @parallel a že SQL Server mohl vygenerovat a používat plán paralelního dotazu. |
| Spouštění streamování | Počet vyvolání funkce streamování |
| Spouštění služby SQL CC | Počet spuštěných externích skriptů, ve kterých se volání vytvořilo vzdáleně, a SQL Server se použil jako výpočetní kontext. |
| Implicitní ověřování. Přihlášení | Počet, kolikrát bylo volání zpětné smyčky ODBC provedeno pomocí implicitního ověřování; to znamená, že SQL Server spustil volání jménem uživatele, který odeslal požadavek skriptu. |
| Celkový čas provedení (ms) | Čas uplynul mezi voláním a dokončením hovoru. |
| Chyby spuštění | Počet nahlášených chyb skripty Tento počet nezahrnuje chyby jazyka R nebo Python. |
Využití paměti
Zobrazte informace o paměti používané operačním systémem, SQL Serverem a externími pooly.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitých zobrazeních dynamické správy najdete v tématu sys.dm_resource_governor_external_resource_pools a 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;
Dotaz vrátí následující sloupce:
| Sloupec | Description |
|---|---|
| physical_memory_kb | Celková velikost fyzické paměti na počítači. |
| committed_kb | Potvrzená paměť ve správci paměti v kilobajtech (KB). Nezahrnuje vyhrazenou paměť ve správci paměti. |
| external_pool_peak_memory_kb (maximální paměť v kB pro externí pool) | Součet maximálního využitého množství paměti v kilobajtech pro všechny fondy externích zdrojů. |
Konfigurace paměti
Zobrazit informace o maximální konfiguraci paměti v procentech u SQL Serveru a fondů externích zdrojů. Pokud sql Server běží s výchozí hodnotou max server memory (MB), považuje se za 100% paměti operačního systému.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitých zobrazeních najdete v tématu sys.configurations a 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;
Dotaz vrátí následující sloupce:
| Sloupec | Description |
|---|---|
| název | Název fondu externích zdrojů nebo SQL Serveru |
| max_memory_percent | Maximální paměť, kterou může SQL Server nebo fond externích zdrojů používat. |
Fondy zdrojů
Ve správci prostředků SQL Serveru fond zdrojů představuje podmnožinu fyzických prostředků instance. Můžete zadat omezení počtu procesorů, fyzických vstupně-výstupních operací a paměti, které můžou příchozí požadavky aplikace, včetně spouštění externích skriptů, používat v rámci fondu prostředků. Zobrazte fondy zdrojů používané pro SQL Server a externí skripty.
Spuštěním následujícího dotazu získáte tento výstup. Další informace o použitých zobrazeních dynamické správy jsou uvedeny v tématu sys.dm_resource_governor_resource_pools a 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;
Dotaz vrátí následující sloupce:
| Sloupec | Description |
|---|---|
| název_poolu | Název fondu zdrojů Fondy zdrojů SQL Serveru mají předponu SQL Server a fondy externích zdrojů mají předponu External Pool. |
| celkový počet hodin využití CPU | Kumulativní využití procesoru v milisekundách od resetování statistik správce prostředků. |
| celkový_počet_dokončených_čtení_io | Celkový počet operací čtení IO dokončených od resetování statistik správce prostředků. |
| write_io_completed_total | Celkový počet dokončených zápisů IO od resetování statistik Správce prostředků. |
Nainstalované balíčky
Balíčky jazyka R a Python nainstalované ve službě SQL Server Machine Learning Services můžete zobrazit spuštěním skriptu R nebo Pythonu, který je vypíše.
Nainstalované balíčky pro R
Zobrazte balíčky R nainstalované ve službě SQL Server Machine Learning Services.
Spuštěním následujícího dotazu získáte tento výstup. Dotaz používá skript jazyka R k určení balíčků R nainstalovaných s SQL Serverem.
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)));
Jsou vráceny následující sloupce:
| Sloupec | Description |
|---|---|
| Package | Název nainstalovaného balíčku. |
| Version | Verze balíčku. |
| Závisí | Zobrazí seznam balíčků, na které nainstalovaný balíček závisí. |
| Licence | Licence pro nainstalovaný balíček. |
| LibPath | Adresář, kde najdete balíček. |
Nainstalované balíčky pro Python
Zobrazte balíčky Pythonu nainstalované ve službě SQL Server Machine Learning Services.
Spuštěním následujícího dotazu získáte tento výstup. Dotaz používá skript Pythonu k určení balíčků Python nainstalovaných s SQL Serverem.
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)));
Vrácené sloupce:
| Sloupec | Description |
|---|---|
| Package | Název nainstalovaného balíčku. |
| Version | Verze balíčku. |
| Umístění | Adresář, kde najdete balíček. |