Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Zwraca listę wszystkich wątków systemu operacyjnego SQL Server działających w procesie SQL Server.
Uwaga / Notatka
Aby wywołać to z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_os_threads. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| thread_address | varbinary(8) | Adres pamięci (klucz główny) wątku. |
| started_by_sqlservr | bit | Wskazuje inicjator wątku. 1 = SQL Server rozpoczął wątek. 0 = Inny komponent rozpoczynał wątek, na przykład rozszerzona procedura przechowywana z SQL Server. |
| os_thread_id | int | ID wątku przypisanego przez system operacyjny. |
| stan | int | Flaga statusu wewnętrznego. |
| instruction_address | varbinary(8) | Adres instrukcji, która jest obecnie wykonywana. |
| creation_time | datetime | Czas, gdy powstał ten wątek. |
| kernel_time | bigint | Ilość czasu jądra poświęcona temu wątkowi. |
| usermode_time | bigint | Ilość czasu użytkownika poświęconego temu wątkowi. |
| stack_base_address | varbinary(8) | Adres pamięci najwyższego adresu stosu dla tego wątku. |
| stack_end_address | varbinary(8) | Adres pamięci najniższego adresu stosu tego wątku. |
| stack_bytes_committed | int | Liczba bajtów zatwierdzonych w stosie. |
| stack_bytes_used | int | Liczba bajtów aktywnie używanych w wątku. |
| koligacja | bigint | Maska CPU, na której działa ten wątek. Zależy to od wartości skonfigurowanej przez powiązanie ALTER SERVER CONFIGURATION SET PROCESS AFFINITY . Może się różnić od schedulera w przypadku miękkiej afinitetu. |
| Priority | int | Wartość priorytetu tego wątku. |
| Lokalizacja | int | Cacheed locale LCID dla wątku. |
| Żeton | varbinary(8) | Uchwyt tokena podszywania się pod wątek w pamięci pamięciowej. |
| is_impersonating | int | Wskazuje, czy ten wątek używa podszywania się pod Win32. 1 = Wątek używa poświadczeń bezpieczeństwa różniących się od domyślnych danych procesu. Oznacza to, że wątek podszywa się pod podmiot inny niż ten, który stworzył proces. |
| is_waiting_on_loader_lock | int | Status systemu operacyjnego, czy wątek czeka na blokadę loadera. |
| fiber_data | varbinary(8) | Aktualne światłowód Win32, który działa na wątku. Dotyczy to tylko sytuacji, gdy SQL Server jest skonfigurowany do lekkiej puli. |
| thread_handle | varbinary(8) | Tylko do użytku wewnętrznego. |
| event_handle | varbinary(8) | Tylko do użytku wewnętrznego. |
| scheduler_address | varbinary(8) | Adres pamięci harmonogramu powiązanego z tym wątkiem. Więcej informacji można znaleźć w sys.dm_os_schedulers (Transact-SQL). |
| adres_pracownika | varbinary(8) | Adres pamięci pracownika powiązanego z tym wątkiem. Więcej informacji można znaleźć w sys.dm_os_workers (Transact-SQL). |
| fiber_context_address | varbinary(8) | Wewnętrzny adres kontekstu światłowodu. Dotyczy to tylko sytuacji, gdy SQL Server jest skonfigurowany do lekkiej puli. |
| self_address | varbinary(8) | Wskaźnik spójności wewnętrznej. |
| processor_group | smallint |
Dotyczy do: SQL Server 2008 R2 (10.50.x) i nowszych. Identyfikator grupy procesora. |
| pdw_node_id | int |
Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW) Identyfikator węzła, w ramach którego znajduje się ta dystrybucja. |
Permissions
W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.
W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.
Uwagi dotyczące wersji na Linuksa
Ze względu na sposób działania silnika SQL na Linuksie, niektóre z tych informacji nie pokrywają się z danymi diagnostycznymi Linuksa. Na przykład nie os_thread_id odpowiada efektowi narzędzi takich jak ps,top czy procfs (/proc/pid). Jest to zasługa Platform Abstraction Layer (SQLPAL), warstwy pomiędzy komponentami SQL Server a systemem operacyjnym.
Przykłady
Po uruchomieniu SQL Server uruchamia wątki i następnie kojarzy pracowników z tymi wątkami. Jednak zewnętrzne komponenty, takie jak rozszerzona procedura przechowywana, mogą uruchamiać wątki w procesie SQL Server. SQL Server nie ma kontroli nad tymi wątkami. sys.dm_os_threads może dostarczać informacji o wątkach nieuczciwych, które zużywają zasoby w procesie SQL Server.
Następujące zapytanie służy do znalezienia pracowników wraz z czasem poświęconym na wykonanie, które uruchamiają wątki nieuruchomione przez SQL Server.
Uwaga / Notatka
Dla zwięzłości następujące zapytanie używa gwiazdki (*) w zdaniu SELECT . Powinieneś unikać używania gwiazdki (*), zwłaszcza w widokach katalogowych, dynamicznych widokach zarządzania oraz funkcjach tabelowych systemowych. Przyszłe aktualizacje i wydania Microsoft SQL Server mogą dodawać kolumny i zmieniać kolejność kolumn w tych widokach i funkcjach. Te zmiany mogą zepsuć aplikacje, które oczekują określonego porządku i liczby kolumn.
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;
Zobacz także
sys.dm_os_workers (Transact-SQL)
Dynamiczne widoki zarządzania związane z systemem operacyjnym PROGRAMU SQL Server (Transact-SQL)