Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri
Azure SQL Yönetilen Örnek
Dış betiklerin (Python ve R), kullanılan kaynakların yürütülmesini izlemek, sorunları tanılamak ve SQL Server Machine Learning Services performansını ayarlamak için dinamik yönetim görünümlerini (DMV) kullanın.
Bu makalede, SQL Server Machine Learning Services'e özgü DMV'leri bulacaksınız. Ayrıca şunları gösteren örnek sorgular da bulabilirsiniz:
- Makine öğrenmesi için ayarlar ve yapılandırma seçenekleri
- Dış Python veya R betikleri çalıştıran etkin oturumlar
- Python ve R için dış çalışma zamanı yürütme istatistikleri
- Dış betikler için performans sayaçları
- İşletim sistemi, SQL Server ve dış kaynak havuzları için bellek kullanımı
- SQL Server ve dış kaynak havuzları için bellek yapılandırması
- Dış kaynak havuzları da dahil olmak üzere Resource Governor kaynak havuzları
- Python ve R için yüklü paketler
DMV'ler hakkında daha fazla genel bilgi için bkz. Sistem Dinamik Yönetim Görünümleri.
Tavsiye
Sql Server Machine Learning Services'ı izlemek için özel raporları da kullanabilirsiniz. Daha fazla bilgi için bkz. Management Studio'da özel raporları kullanarak makine öğrenmesini izleme.
Dinamik yönetim görünümleri
SQL Server'da makine öğrenmesi iş yükleri izlenirken aşağıdaki dinamik yönetim görünümleri kullanılabilir. DMV'leri sorgulamak için örnekte VIEW SERVER STATE iznine sahip olmanız gerekir.
| Dinamik yönetim görünümü | Türü | Description |
|---|---|---|
| sys.dm_external_script_requests | Execution | Dış betik çalıştıran her etkin çalışan hesabı için bir satır döndürür. |
| sys.dm_external_script_execution_stats | Execution | Her dış betik isteği türü için bir satır döndürür. |
| sys.dm_os_performance_counters | Execution | Sunucu tarafından tutulan performans sayacı başına bir satır döndürür. arama koşulunu WHERE object_name LIKE '%External Scripts%'kullanıyorsanız, bu bilgileri kaç betiğin çalıştırıldığını, hangi betiklerin hangi kimlik doğrulama modu kullanılarak çalıştırıldığını veya örnekte genel olarak kaç R veya Python çağrısı verildiğini görmek için kullanabilirsiniz. |
| sys.dm_resource_governor_external_resource_pools | Kaynak Yöneticisi | Resource Governor'daki geçerli dış kaynak havuzu durumu, kaynak havuzlarının geçerli yapılandırması ve kaynak havuzu istatistikleri hakkında bilgi döndürür. |
| sys.dm_resource_governor_external_resource_pool_affinity | Kaynak Yöneticisi | Resource Governor'daki geçerli dış kaynak havuzu yapılandırması hakkında CPU benzenşimi bilgilerini döndürür. SQL Server'da her zamanlayıcının tek bir işlemciye eşlendiği zamanlayıcı başına bir satır döndürür. Zamanlayıcının koşulunu izlemek veya kaçak görevleri tanımlamak için bu görünümü kullanın. |
SQL Server örneklerini izleme hakkında bilgi için bkz. Katalog Görünümleri ve Resource Governor İlgili Dinamik Yönetim Görünümleri.
Ayarlar ve yapılandırma
Machine Learning Services yükleme ayarını ve yapılandırma seçeneklerini görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan görünümler ve işlevler hakkında daha fazla bilgi için bkz. sys.dm_server_registry, sys.configurations ve 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';
Sorgu aşağıdaki sütunları döndürür:
| Köşe yazısı | Description |
|---|---|
| IsMLServicesInstalled | Örnek için SQL Server Machine Learning Services yüklüyse 1 döndürür. Aksi takdirde 0 olarak döndürür. |
| ExternalScriptsEnabled | Örnek için dış betikler etkinleştirildiyse 1 döndürür. Aksi takdirde 0 döndürür. |
| İma Edilen Kimlik Doğrulaması Etkin | Zımni kimlik doğrulaması etkinleştirildiyse, 1 değerini döndürür. Aksi takdirde 0 döndürür. SQLRUserGroup için bir oturum açma bilgisinin mevcudiyeti doğrulanarak zımni kimlik doğrulaması yapılandırması kontrol ediliyor. |
| TcpEtkinMi | Örnek için TCP/IP protokolü etkinleştirilmişse 1 döndürür. Aksi takdirde 0 döndürür. Daha fazla bilgi için bkz. Varsayılan SQL Server Ağ Protokolü Yapılandırması. |
Etkin oturumlar
Dış betikleri çalıştıran etkin oturumları görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan dinamik yönetim görünümleri hakkında daha fazla bilgi için bkz. sys.dm_exec_requests, sys.dm_external_script_requests ve 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;
Sorgu aşağıdaki sütunları döndürür:
| Köşe yazısı | Description |
|---|---|
| session_id | Her etkin birincil bağlantıyla ilişkili oturumu tanımlar. |
| engelleyen_oturum_kimliği | İsteği engelleyen oturumun kimliği. Bu sütun NULL ise, istek engellenmez veya engelleme oturumunun oturum bilgileri kullanılamaz (veya tanımlanamaz). |
| statü | İsteğin durumu. |
| veritabanı_adı | Her oturum için geçerli veritabanının adı. |
| kullanıcı adı | Oturumun yürütülmekte olduğu SQL Server oturum açma adı. |
| bekleme süresi | İstek şu anda engellenmişse, bu sütun geçerli beklemenin süresini milisaniye cinsinden döndürür. Null olamaz. |
| wait_type | İstek şu anda engellenmişse, bu sütun bekleme türünü döndürür. Bekleme türleri hakkında bilgi için bkz. sys.dm_os_wait_stats. |
| son_bekleme_tipi | Bu istek daha önce engellenmişse, bu sütun son beklemenin türünü döndürür. |
| toplam_geçen_zaman | İsteğin gelmesinden bu yana geçen toplam süre milisaniye cinsindendir. |
| CPU zamanı | İstek tarafından kullanılan milisaniye cinsinden CPU süresi. |
| okuma | Bu istek tarafından gerçekleştirilen okuma sayısı. |
| logical_reads | İstek tarafından gerçekleştirilen mantıksal okuma sayısı. |
| yazma | Bu istek tarafından gerçekleştirilen yazma sayısı. |
| language | Desteklenen bir betik dilini temsil eden anahtar sözcük. |
| paralellik derecesi | Oluşturulan paralel işlemlerin sayısını gösteren sayı. Bu değer, istenen paralel işlemlerin sayısından farklı olabilir. |
| external_user_name | Betiğin yürütüldiği Windows çalışan hesabı. |
Yürütme istatistikleri
R ve Python için dış çalışma zamanının yürütme istatistiklerini görüntüleyin. Şu anda yalnızca RevoScaleR, revoscalepy veya microsoftml paket işlevlerine ilişkin istatistikler kullanılabilir.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan dinamik yönetim görünümü hakkında daha fazla bilgi için bkz. sys.dm_external_script_execution_stats. Sorgu yalnızca birden çok kez yürütülen işlevleri döndürür.
SELECT language, counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE counter_value > 0
ORDER BY language, counter_name;
Sorgu aşağıdaki sütunları döndürür:
| Köşe yazısı | Description |
|---|---|
| language | Kayıtlı dış betik dilinin adı. |
| counter_name | Kayıtlı bir dış betik işlevinin adı. |
| counter_value | Sunucuda kayıtlı dış betik işlevinin çağrıldığı toplam örnek sayısı. Bu değer, özelliğin örneğe yüklendiği zamandan başlayarak topludur ve sıfırlanamaz. |
Performans sayaçları
Dış betiklerin yürütülmesiyle ilgili performans sayaçlarını görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan dinamik yönetim görünümü hakkında daha fazla bilgi için bkz. 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 dış betikler için aşağıdaki performans sayaçlarını oluşturur:
| Counter | Description |
|---|---|
| Toplam Yürütme | Yerel veya uzak çağrılar tarafından başlatılan dış işlemlerin sayısı. |
| Paralel Yürütmeler | @parallel belirtiminin kaç kez dahil edildiği ve SQL Server'ın paralel sorgu planı oluşturup kullandığı. |
| Akışlı İşlemler | Akış özelliğinin çağrılma sayısı. |
| SQL CC Yürütmeleri | Çağrının uzaktan örneklendiği ve işlem bağlamı olarak SQL Server'ın kullanıldığı çalıştırılan dış betiklerin sayısı. |
| Zımni Kimlik Doğrulama Oturumları | Bir ODBC geri döngü çağrısının zımni kimlik doğrulaması kullanılarak kaç kez yapıldığı; yani SQL Server, betik isteğini gönderen kullanıcı adına aramayı yürütür. |
| Toplam Yürütme Süresi (ms) | Arama ile çağrının tamamlanması arasında geçen süre. |
| Yürütme Hataları | Betiklerin hata bildirme sayısı. Bu sayı R veya Python hatalarını içermez. |
Bellek kullanımı
İşletim sistemi, SQL Server ve dış havuzlar tarafından kullanılan bellek hakkındaki bilgileri görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan dinamik yönetim görünümleri hakkında daha fazla bilgi için bkz. sys.dm_resource_governor_external_resource_pools ve 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;
Sorgu aşağıdaki sütunları döndürür:
| Köşe yazısı | Description |
|---|---|
| physical_memory_kb | Makinedeki toplam fiziksel bellek miktarı. |
| committed_kb | Bellek yöneticisinde kilobayt (KB) cinsinden taahhüt edilmiş bellek. Bellek yöneticisi rezerve edilmiş belleği hariç tutar. |
| external_pool_peak_memory_kb | Tüm dış kaynak havuzları için kullanılan en fazla bellek miktarının (kilobayt cinsinden) toplamı. |
Bellek yapılandırması
SQL Server ve dış kaynak havuzlarının yüzdesi cinsinden en yüksek bellek yapılandırması hakkındaki bilgileri görüntüleyin. SQL Server varsayılan değeriyle max server memory (MB)çalışıyorsa, işletim sistemi belleğinin 100% olarak kabul edilir.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan görünümler hakkında daha fazla bilgi için bkz . sys.configurations ve 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;
Sorgu aşağıdaki sütunları döndürür:
| Köşe yazısı | Description |
|---|---|
| name | Dış kaynak havuzunun veya SQL Server'ın adı. |
| max_memory_percent | SQL Server veya dış kaynak havuzunun kullanabileceği en yüksek bellek. |
Kaynak havuzları
SQL Server Resource Governor'dakaynak havuzu, örneğin fiziksel kaynaklarının bir alt kümesini temsil eder. Dış betiklerin yürütülmesi de dahil olmak üzere gelen uygulama isteklerinin kaynak havuzu içinde kullanabileceği CPU, fiziksel GÇ ve bellek miktarıyla ilgili sınırlar belirtebilirsiniz. SQL Server ve dış betikler için kullanılan kaynak havuzlarını görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Kullanılan dinamik yönetim görünümleri hakkında daha fazla bilgi için bkz. sys.dm_resource_governor_resource_pools ve 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;
Sorgu aşağıdaki sütunları döndürür:
| Köşe yazısı | Description |
|---|---|
| pool_name | Kaynak havuzunun adı. SQL Server kaynak havuzlarının ön eki SQL Server ve dış kaynak havuzlarının ön eki External Poolvardır. |
| toplam_cpu_kullanım_saatleri | Resource Governor istatistikleri sıfırlandığından bu yana milisaniye cinsinden birikmeli CPU kullanımı. |
| okuma_io_tamamlanan_toplam | Resource Governor istatistikleri sıfırlandığından bu yana tamamlanan toplam okuma IO’ları. |
| yazma_girdi_çıktı_tamamlanmış_toplam | Resource Governor istatistikleri sıfırlandığından bu yana tamamlanan toplam yazma girdi/çıktı işlemleri. |
Yüklü paketler
Bunları veren bir R veya Python betiği yürüterek SQL Server Machine Learning Services'a yüklenen R ve Python paketlerini görüntüleyebilirsiniz.
R için yüklü paketler
SQL Server Machine Learning Services'da yüklü R paketlerini görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Sorgu, SQL Server ile yüklenen R paketlerini belirlemek için bir R betiği kullanır.
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)));
Döndürülen sütunlar şunlardır:
| Köşe yazısı | Description |
|---|---|
| Package | Yüklü paketin adı. |
| Sürüm | Paketin sürümü. |
| Depends | Yüklü paketin bağımlı olduğu paketleri listeler. |
| Lisans | Yüklü paketin lisansı. |
| LibPath | Paketi bulabileceğiniz dizin. |
Python için yüklü paketler
SQL Server Machine Learning Services'da yüklü Python paketlerini görüntüleyin.
Bu çıkışı almak için aşağıdaki sorguyu çalıştırın. Sorgu, SQL Server ile yüklenen Python paketlerini belirlemek için bir Python betiği kullanır.
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)));
Döndürülen sütunlar şunlardır:
| Köşe yazısı | Description |
|---|---|
| Package | Yüklü paketin adı. |
| Sürüm | Paketin sürümü. |
| Yer | Paketi bulabileceğiniz dizin. |