sys.dm_os_threads (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Mengembalikan daftar semua utas Sistem Operasi SQL Server yang berjalan di bawah proses SQL Server.

Catatan

Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_os_threads. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Nama kolom Jenis data Deskripsi
thread_address varbinary(8) Alamat memori (Kunci Primer) utas.
started_by_sqlservr bit Menunjukkan inisiator utas.

1 = SQL Server memulai utas.

0 = Komponen lain memulai utas, seperti prosedur tersimpan yang diperluas dari dalam SQL Server.
os_thread_id int ID utas yang ditetapkan oleh sistem operasi.
status int Bendera status internal.
instruction_address varbinary(8) Alamat instruksi yang saat ini sedang dijalankan.
creation_time datetime Waktu ketika utas ini dibuat.
kernel_time bigint Jumlah waktu kernel yang digunakan oleh utas ini.
usermode_time bigint Jumlah waktu pengguna yang digunakan oleh utas ini.
stack_base_address varbinary(8) Alamat memori alamat tumpukan tertinggi untuk utas ini.
stack_end_address varbinary(8) Alamat memori alamat tumpukan terendah dari utas ini.
stack_bytes_committed int Jumlah byte yang diterapkan dalam tumpukan.
stack_bytes_used int Jumlah byte yang secara aktif digunakan pada utas.
Afinitas bigint Masker CPU tempat utas ini berjalan. Ini tergantung pada nilai yang dikonfigurasi oleh pernyataan AFFINITY PROSES SET KONFIGURASI SERVER ALTER. Mungkin berbeda dari penjadwal jika terjadi afinitas lunak.
Prioritas int Nilai prioritas utas ini.
Lokal int LCID lokal cache untuk utas.
Token varbinary(8) Handel token peniruan cache untuk utas.
is_impersonating int Menunjukkan apakah utas ini menggunakan peniruan Win32.

1 = Utas menggunakan kredensial keamanan yang berbeda dari default proses. Ini menunjukkan bahwa utas meniru entitas selain yang membuat proses.
is_waiting_on_loader_lock int Status sistem operasi apakah utas menunggu pada kunci loader.
fiber_data varbinary(8) Serat Win32 saat ini yang berjalan di utas. Ini hanya berlaku ketika SQL Server dikonfigurasi untuk pengumpulan ringan.
thread_handle varbinary(8) Penggunaan internal saja.
event_handle varbinary(8) Penggunaan internal saja.
penjadwal_alamat varbinary(8) Alamat memori penjadwal yang terkait dengan utas ini. Untuk informasi selengkapnya, lihat sys.dm_os_schedulers (Transact-SQL).
worker_address varbinary(8) Alamat memori pekerja yang terikat ke utas ini. Untuk informasi selengkapnya, lihat sys.dm_os_workers (Transact-SQL).
fiber_context_address varbinary(8) Alamat konteks serat internal. Ini hanya berlaku ketika SQL Server dikonfigurasi untuk pengumpulan ringan.
self_address varbinary(8) Penunjuk konsistensi internal.
processor_group smallint Berlaku untuk: SQL Server 2008 R2 (10.50.x) dan yang lebih baru.

ID grup prosesor.
pdw_node_id int Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Pengidentifikasi untuk simpul tempat distribusi ini aktif.

Izin

Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE izin.

Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam##MS_ServerStateReader## peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Catatan pada versi Linux

Karena cara kerja mesin SQL di Linux, beberapa informasi ini tidak cocok dengan data diagnostik Linux. Misalnya, os_thread_id tidak cocok dengan hasil alat seperti ps,top atau procfs (/proc/pid). Ini karena Lapisan Abstraksi Platform (SQLPAL), lapisan antara komponen SQL Server dan sistem operasi.

Contoh

Setelah startup, SQL Server memulai utas dan kemudian mengaitkan pekerja dengan utas tersebut. Namun, komponen eksternal, seperti prosedur tersimpan yang diperluas, dapat memulai utas di bawah proses SQL Server. SQL Server tidak memiliki kontrol atas utas ini. sys.dm_os_threads dapat memberikan informasi tentang utas nakal yang menggunakan sumber daya dalam proses SQL Server.

Kueri berikut digunakan untuk menemukan pekerja, bersama dengan waktu yang digunakan untuk eksekusi, yang menjalankan utas yang tidak dimulai oleh SQL Server.

Catatan

Untuk ketepatan, kueri berikut menggunakan tanda bintang (*) dalam SELECT pernyataan. Anda harus menghindari penggunaan tanda bintang (*), terutama terhadap tampilan katalog, tampilan manajemen dinamis, dan fungsi bernilai tabel sistem. Peningkatan dan rilis Microsoft SQL Server di masa mendatang dapat menambahkan kolom dan mengubah urutan kolom ke tampilan dan fungsi ini. Perubahan ini dapat merusak aplikasi yang mengharapkan urutan dan jumlah kolom tertentu.

SELECT *  
  FROM sys.dm_os_threads  
  WHERE started_by_sqlservr = 0;  

Baca juga

sys.dm_os_workers (T-SQL)
Tampilan Manajemen Dinamis Terkait Sistem Operasi SQL Server (Transact-SQL)