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 informacje o aktualnym statusie semaforu zapytania i zasobu w SQL Server. sys.dm_exec_query_resource_semaphores zapewnia ogólny status pamięci zapytań i wykonania oraz pozwala określić, czy system ma dostęp do wystarczającej ilości pamięci. Ten pogląd uzupełnia informacje o pamięci uzyskane z sys.dm_os_memory_clerks , aby uzyskać pełny obraz stanu pamięci serwera. sys.dm_exec_query_resource_semaphores zwraca jeden wiersz dla zwykłego semaforu zasobu i inny dla semaforu zasobu małego zapytania. Istnieją dwa wymagania dla semaforu z małym zapytaniem:
Wymagany limit pamięci powinien być mniejszy niż 5 MB
Koszt zapytania powinien być mniejszy niż 3 jednostki kosztu
Uwaga / Notatka
Aby wywołać to z usługi Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_exec_query_resource_semaphores. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| resource_semaphore_id | smallint | Nieunikalny identyfikator semaforu zasobu. 0 dla zwykłego semaforu zasobów i 1 dla semaforu małego zapytania. |
| target_memory_kb | bigint | Cel wykorzystania w kilobajtach przyznawaj. |
| max_target_memory_kb | bigint | Maksymalny potencjalny cel w kilobajtach. NULL dla semaforu zasobów do małych zapytań. |
| total_memory_kb | bigint | Pamięć przechowywana przez semafor zasobów w kilobajtach. Jeśli system jest pod presją pamięci lub jeśli wymuszona minimalna pamięć jest często przyznawana, wartość ta może być większa niż wartości target_memory_kb lub max_target_memory_kb . Całkowita pamięć to suma dostępnej i przyznanej pamięci. |
| available_memory_kb | bigint | Pamięć dostępna dla nowego grantu w kilobajtach. |
| granted_memory_kb | bigint | Całkowita pamięć przyznana w kilobajtach. |
| used_memory_kb | bigint | Fizycznie zużywał część przydzielonej pamięci w kilobajtach. |
| grantee_count | int | Liczba aktywnych zapytań, które mają spełnione swoje granty. |
| waiter_count | int | Liczba zapytań czekających na spełnienie grantów. |
| timeout_error_count | bigint | Łączna liczba błędów time-out od momentu uruchomienia serwera. NULL dla semaforu zasobów do małych zapytań. |
| forced_grant_count | bigint | Łączna liczba wymuszonych przydziałów na minimalną pamięć od momentu uruchomienia serwera. NULL dla semaforu zasobów do małych zapytań. |
| pool_id | int | Identyfikator puli zasobów, do której należy ten semafor zasobów. |
| 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
Zapytania wykorzystujące dynamiczne widoki zarządzania, w tym ORDER BY lub agregaty, mogą zwiększyć zużycie pamięci i tym samym przyczyniać się do problemu, który rozwiązują.
Używaj sys.dm_exec_query_resource_semaphores do rozwiązywania problemów, ale nie włączaj go do aplikacji, które będą korzystać z przyszłych wersji SQL Server.
Funkcja Resource Governor umożliwia administratorowi bazy danych rozdzielanie zasobów serwera między pule zasobów, maksymalnie do 64 pul. W SQL Server 2012 (11.x) i wyższych każda pula zachowuje się jak mała, niezależna instancja serwera i wymaga 2 semaforów.
Zobacz też
Dynamiczne widoki zarządzania i funkcje związane z wykonywaniem (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)