Aracılığıyla paylaş


sys.dm_os_threads (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'te SQL Veritabanı

SQL Server işlemi altında çalışan tüm SQL Server İşletim Sistemi iş parçacıklarının bir listesini döndürür.

Uyarı

Bunu Azure Synapse Analytics veya Analytics Platform System (PDW) olarak adlandırmak için sys.dm_pdw_nodes_os_threads adını kullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Sütun adı Veri türü Description
thread_address varbinary(8) İş parçacığının bellek adresi (Birincil Anahtar).
started_by_sqlservr bit İş parçacığı başlatıcısını gösterir.

1 = SQL Server iş parçacığını başlattı.

0 = Başka bir bileşen, örneğin SQL Server içinden genişletilmiş bir depolanmış prosedür gibi iş parçacığı başlattı.
os_thread_id int İşletim sistemi tarafından atanan iş parçacığının kimliği.
statü int Dahili durum bayrağı.
instruction_address varbinary(8) Şu anda yürütülmekte olan komutun adresi.
creation_time datetime Bu başlığın oluşturulduğu zaman.
kernel_time bigint Bu iş parçacığında kullanılan çekirdek süresi.
usermode_time bigint Bu başlıkta kullanılan kullanıcı süresi.
stack_base_address varbinary(8) Bu iş parçacığı için en yüksek yığın adresinin bellek adresi.
stack_end_address varbinary(8) Bu iş parçacığındaki en düşük yığın adresinin bellek adresi.
stack_bytes_committed int Yığında bağlanmış bayt sayısı.
stack_bytes_used int Thread'te aktif olarak kullanılan bayt sayısı.
ilgi bigint Bu iş parçacılığının üzerinde çalıştığı CPU maskesi. Bu, ALTER SERVER CONFIGURATION SET PROCESS AFFINITY ifadesi tarafından yapılandırılan değere bağlıdır. Soft-affinity durumunda zamanlayıcıdan farklı olabilir.
Priority int Bu başlığın öncelik değeri.
Locale int Konu için önbelleklenmiş yerel LCID (LCID) oldu.
Jeton varbinary(8) İş parçacığı için önbelleğe alınmış taklit token kullanıcı adı.
is_impersonating int Bu başlığın Win32 takliti yapıp kullanmadığını gösterir.

1 = İş parçacığı, sürecin varsayılan durumundan farklı güvenlik kimlik bilgilerini kullanıyor. Bu, iş parçacığının, süreci oluşturan varlıktan başka bir varlığı taklit ettiğini gösterir.
is_waiting_on_loader_lock int İş parçacığının yükleyici kilidinde bekleyip beklemediğinin işletim sistemi durumu.
fiber_data varbinary(8) Diş üzerinde çalışan şu anda Win32 fiber. Bu durum yalnızca SQL Server hafif havuzlama için yapılandırıldığında geçerlidir.
thread_handle varbinary(8) Yalnızca iç kullanım.
event_handle varbinary(8) Yalnızca iç kullanım.
scheduler_address varbinary(8) Bu iş parçacığına bağlı zamanlayıcının bellek adresi. Daha fazla bilgi için sys.dm_os_schedulers (Transact-SQL) bölümüne bakınız.
çalışan_adresi varbinary(8) Bu iş parçacığına bağlı çalışan işçinin bellek adresi. Daha fazla bilgi için bkz. sys.dm_os_workers (Transact-SQL).
fiber_context_address varbinary(8) İç fiber bağlam adresi. Bu durum yalnızca SQL Server hafif havuzlama için yapılandırıldığında geçerlidir.
self_address varbinary(8) İçsel tutarlılık işaretçisi.
processor_group smallint SQL Server 2008 R2 (10.50.x) ve sonrasına uygulanır.

İşlemci grubu kimliği.
pdw_node_id int için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)

Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı.

Permissions

SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.

SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.

SQL Server 2022 ve üzeri için izinler

Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Linux versiyonu hakkında notlar

SQL motorunun Linux'ta çalışma şekli nedeniyle, bu bilgilerin bazıları Linux tanı verileriyle eşleşmiyor. Örneğin, os_thread_id , pstop veya procfs (/proc/pid) gibi araçların sonucunla eşleşmez. Bunun nedeni, SQL Server bileşenleri ile işletim sistemi arasında bir katman olan Platform Soyutlama Katmanı (SQLPAL).

Örnekler

Başlatıldığında, SQL Server iş parçacıklarını başlatır ve ardından çalışanları bu iş parçacıklarıyla ilişkilendirir. Ancak, genişletilmiş bir depolanmış prosedür gibi harici bileşenler SQL Server süreci altında iş parçacıklarını başlatabilir. SQL Server bu iş parçacıkları üzerinde hiçbir kontrol sahibi değildir. sys.dm_os_threads, SQL Server sürecinde kaynak tüketen rogue iş parçacıkları hakkında bilgi sağlayabilir.

Aşağıdaki sorgu, SQL Server tarafından başlatılmayan iş parçacıklarını çalıştıran çalışanları ve yürütme süresini bulmak için kullanılır.

Uyarı

Kısalık için, aşağıdaki sorguda ifadede yıldız işareti (*) SELECT kullanılır. Yıldız işareti (*) kullanmaktan kaçınmalısınız, özellikle katalog görünümlerine, dinamik yönetim görünümlerine ve sistem tablo değerli fonksiyonlara karşı. Microsoft SQL Server'ın gelecekteki yükseltmeleri ve sürümleri, bu görünümlere ve fonksiyonlara sütun sırasını ekleyebilir ve değişebilir. Bu değişiklikler, belirli bir sırayla ve sütun sayısını bekleyen uygulamaları bozabilir.

SELECT *  
  FROM sys.dm_os_threads  
  WHERE started_by_sqlservr = 0;  

Ayrıca bakınız

sys.dm_os_workers (Transact-SQL)
SQL Server İşletim Sistemiyle İlgili Dinamik Yönetim Görünümleri (Transact-SQL)