sys.dm_os_threads (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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;
Lihat juga
sys.dm_os_workers (T-SQL)
Tampilan Manajemen Dinamis Terkait Sistem Operasi SQL Server (Transact-SQL)