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 wykorzystaniu przestrzeni dla każdego pliku danych w bazie danych.
Uwaga / Notatka
Aby wywołać to z usługi Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_db_file_space_usage. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
database_id |
smallint | Identyfikator bazy danych. W usłudze Azure SQL Database wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego. |
file_id |
smallint | Identyfikator pliku.file_id mapuje na file_idin sys.dm_io_virtual_file_stats oraz na fileID w sys.sysfiles. |
filegroup_id |
smallint |
Dotyczy: SQL Server 2012 (11.x) i nowsze wersje. Identyfikator grupy plików. |
total_page_count |
bigint |
Dotyczy: SQL Server 2012 (11.x) i nowsze wersje. Łączna liczba stron w pliku danych. |
allocated_extent_page_count |
bigint |
Dotyczy: SQL Server 2012 (11.x) i nowsze wersje. Całkowita liczba stron w przydzielonych zakresach pliku danych. |
unallocated_extent_page_count |
bigint | Całkowita liczba stron w nieprzydzielonych zakresach pliku danych. Nieużywane strony w przydzielonych zakresach nie są uwzględniane. |
version_store_reserved_page_count |
bigint | Całkowita liczba stron w jednolitych zakresach przydzielonych dla magazynu wersji. Strony magazynu wersji nigdy nie są przydzielane z mieszanych zakresów. Strony IAM nie są uwzględniane, ponieważ zawsze są przydzielane z mieszanych zakresów. Strony PFS są uwzględniane, jeśli są przydzielane z jednolitego zakresu. Więcej informacji można znaleźć w sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_count |
bigint | Całkowita liczba stron przydzielonych z jednolitych zakresów obiektów użytkownika w bazie danych. Niewykorzystane strony z przydzielonego zakresu są uwzględniane w liczeniu. Strony IAM nie są uwzględniane, ponieważ zawsze są przydzielane z mieszanych zakresów. Strony PFS są uwzględniane, jeśli są przydzielane z jednolitego zakresu. Możesz użyć kolumny total_pages w widoku katalogu sys.allocation_units , aby zwrócić liczbę zarezerwowanych stron każdej jednostki alokacji w obiekcie użytkownika. Jednak rubryka zawiera total_pages strony IAM. |
internal_object_reserved_page_count |
bigint | Łączna liczba stron w jednolitych zakresach przydzielonych na wewnętrzne obiekty w pliku. Niewykorzystane strony z przydzielonego zakresu są uwzględniane w liczeniu. Strony IAM nie są uwzględniane, ponieważ zawsze są przydzielane z mieszanych zakresów. Strony PFS są uwzględniane, jeśli są przydzielane z jednolitego zakresu. Nie ma widoku katalogowego ani dynamicznego obiektu zarządzania, który zwracałby liczbę stron każdego wewnętrznego obiektu. |
mixed_extent_page_count |
bigint | Całkowita liczba przydzielonych i nieprzydzielonych stron w przydzielonych mieszanych zakresach w pliku. Rozszerzenia mieszane zawierają strony przypisane do różnych obiektów. Ten licznik obejmuje wszystkie strony IAM w pliku. |
modified_extent_page_count |
bigint |
Dotyczy: SQL Server 2016 (13.x) SP2 i nowsze wersje. Całkowita liczba stron zmodyfikowanych w przydzielonych zakresach pliku od ostatniej pełnej kopii zapasowej bazy danych. Zmodyfikowana liczba stron może być użyta do śledzenia liczby różnicowych zmian w bazie danych od ostatniej pełnej kopii zapasowej, aby zdecydować, czy konieczna jest różnica kopii zapasowej. |
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. |
distribution_id |
int |
Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW) Unikalny numeryczny identyfikator przypisany do rozkładu. |
Uwagi
Liczba stron zawsze jest na poziomie zakresu. Dlatego wartości liczby stron są zawsze wielokrotnością ośmiu. Obszary zawierające Globalną Mapę Przydziału (GAM) i Wspólną Globalną Mapę Przydziału (SGAM) są przydzielane jako jednolite zakresy. Nie są one uwzględniane w wcześniej opisanej liczbie stron. Aby uzyskać więcej informacji na temat stron i zakresów, zobacz Podręcznik architektury stron i zakresów.
Treść aktualnego magazynu wersji jest sys.dm_tran_version_store. Strony magazynu wersji są śledzone na poziomie plików, a nie na poziomie sesji i zadań, ponieważ są zasobami globalnymi. Sesja może generować wersje, ale nie można ich usunąć po zakończeniu sesji. Czyszczenie magazynu wersji musi uwzględnić najdłużej działającą transakcję, która wymaga dostępu do danej wersji. Najdłużej trwającą transakcję związaną z czyszczeniem magazynu wersji można odkryć, przeglądając kolumnę elapsed_time_seconds w sys.dm_tran_active_snapshot_database_transactions.
Częste zmiany w kolumnie mixed_extent_page_count mogą wskazywać na intensywne korzystanie ze stron SGAM. Gdy tak się dzieje, możesz zobaczyć wiele PAGELATCH_UP oczekiwań, w których zasob oczekiwania jest stroną SGAM. Więcej informacji można znaleźć w sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) oraz sys.dm_os_latch_stats (Transact-SQL).
Obiekty użytkownika
W licznikach stron obiektów użytkownika zawarte są następujące obiekty:
- Tabele i indeksy zdefiniowane przez użytkownika
- Tabele systemowe i indeksy
- Globalne tabele tymczasowe i indeksy
- Lokalne tabele tymczasowe i indeksy
- Zmienne tabeli
- Tabele zwracane w funkcjach tabelowych
Obiekty wewnętrzne
Obiekty wewnętrzne występują tylko w .tempdb W wewnętrznych licznikach stron obiektów zawarte są następujące obiekty:
- Tabele robocze do operacji kursorów lub szpuli oraz tymczasowego przechowywania dużych obiektów (LOB)
- Pliki robocze dla operacji takich jak łączenie skrótów
- Sortowanie przebiegów
Kardynały relacji
| Źródło | To | Relacja |
|---|---|---|
sys.dm_db_file_space_usage.database_id, file_id |
sys.dm_io_virtual_file_stats.database_id, file_id |
Jeden do jednego |
Permissions
W SQL Server 2019 (15.x) i wcześniejszych wersjach oraz SQL Managed Instance wymaga VIEW SERVER STATE uprawnień.
W SQL Server 2022 (16.x) i nowszych wersjach wymagane jest uprawnienia VIEW SERVER PERFORMANCE STATE na serwerze.
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.
Przykłady
Określ ilość wolnej przestrzeni w tempdb
Poniższe zapytanie zwraca łączną liczbę wolnych stron oraz całkowitą wolną przestrzeń w megabajtach (MB) dostępnych we wszystkich plikach danych w tempdb.
USE tempdb;
GO
SELECT
SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count) * 1.0 / 128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;
Określ ilość przestrzeni zajmowanej przez obiekty użytkownika
Następujące zapytanie zwraca łączną liczbę stron używanych przez obiekty użytkownika oraz całkowitą przestrzeń zajmowaną przez obiekty użytkownika w .tempdb
USE tempdb;
GO
SELECT
SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count) * 1.0 / 128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;