Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо:SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
В системной хранимой процедуре отображается следующее sp_spaceused
:
количество строк, зарезервированных дискового пространства и дискового пространства, используемого таблицей, индексированного представления или очереди Service Broker в текущей базе данных
дисковое пространство зарезервировано и используется всей базой данных
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_spaceused
[ [ @objname = ] N'objname' ]
[ , [ @updateusage = ] 'updateusage' ]
[ , [ @mode = ] 'mode' ]
[ , [ @oneresultset = ] oneresultset ]
[ , [ @include_total_xtp_storage = ] include_total_xtp_storage ]
[ ; ]
Примечание.
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Аргументы
Для Системы платформы Аналитики и аналитики Azure Synapse Analytics (PDW) sp_spaceused
необходимо указать именованные параметры (например sp_spaceused (@objname= N'Table1');
), а не полагаться на порядковое положение параметров.
[ @objname = ] N'objname'
Полное или неквалифицированное имя таблицы, индексированного представления или очереди, для которой запрашиваются сведения об использовании пространства.
@objname — nvarchar(776) с значением по умолчаниюNULL
. Кавычки необходимы только в том случае, если указано уточненное имя объекта. Если указано полностью уточненное имя, включающее имя базы данных, именем базы данных должно быть имя текущей базы данных.
Если @objname не задано, результаты возвращаются для всей базы данных.
Примечание.
Azure Synapse Analytics и analytics Platform System (PDW) поддерживают только объекты базы данных и таблиц.
[ @updateusage = ] 'updateusage'
DBCC UPDATEUSAGE
Указывает, что следует запускать для обновления сведений об использовании пространства.
@updateusage — varchar(5) с значением по умолчаниюfalse
. Если @objname не указан, инструкция выполняется во всей базе данных. В противном случае инструкция выполняется в @objname. Возможные значения — true
или false
.
[ @mode = ] 'mode'
Указывает область результатов. Для растянутой таблицы или базы данных параметр @mode позволяет включить или исключить удаленную часть объекта. Дополнительные сведения см. в разделе Stretch Database.
Внимание
Stretch Database устарел в SQL Server 2022 (16.x) и База данных SQL Azure. Эта функция будет удалена в будущей версии ядро СУБД. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
@mode — varchar(11) и может быть одним из этих значений.
значение | Описание |
---|---|
ALL (по умолчанию) |
Возвращает статистику хранения объекта или базы данных, включая локальную часть и удаленную часть. |
LOCAL_ONLY |
Возвращает статистику хранения только локальной части объекта или базы данных. Если объект или база данных не включена Stretch, возвращает ту же статистику, что и при @modeALL . |
REMOTE_ONLY |
Возвращает статистику хранения только удаленной части объекта или базы данных. Этот параметр вызывает ошибку, если одно из следующих условий имеет значение true: Таблица не включена для Stretch. Таблица включена для Stretch, но вы никогда не включили миграцию данных. В этом случае удаленная таблица еще не имеет схемы. Пользователь вручную удалял удаленную таблицу. Подготовка удаленного архива данных вернула состояние success, но на самом деле не удалось. |
[ @oneresultset = ] oneresultset
Указывает, следует ли возвращать один результирующий набор. @oneresultset бит и может быть одним из следующих значений:
значение | Описание |
---|---|
0 (по умолчанию) |
Если @objname имеет значение NULL или не указано, возвращаются два результирующих набора. |
1 |
Если @objnameNULL не указан или не указан, возвращается один результирующий набор. |
[ @include_total_xtp_storage = ] include_total_xtp_storage
Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL
Если 1
, этот параметр определяет, содержит ли один набор результатов столбцы для MEMORY_OPTIMIZED_DATA
хранилища.
@include_total_xtp_storage бит с значением по умолчанию0
. Если 1
столбцы XTP включены в набор результатов.
Значения кода возврата
0
(успешно) или 1
(сбой).
Результирующий набор
Если @objname опущен и значение @oneresultset0
, возвращаются следующие результирующие наборы, чтобы предоставить текущие сведения о размере базы данных.
Имя столбца | Тип данных | Описание |
---|---|---|
database_name |
nvarchar(128) | Имя текущей базы данных. |
database_size |
varchar(18) | Размер текущей базы данных в мегабайтах.
database_size включает как файлы данных, так и журналы. |
unallocated space |
varchar(18) | Пространство в базе данных, которая не зарезервирована для объектов базы данных. |
Имя столбца | Тип данных | Описание |
---|---|---|
reserved |
varchar(18) | Общий объем пространства, выделенный объектам в базе данных. |
data |
varchar(18) | Общий объем пространства, используемый данными. |
index_size |
varchar(18) | Общий объем пространства, используемый индексами. |
unused |
varchar(18) | Общий объем пространства, зарезервированный для объектов в базе данных, но пока не используемый. |
Если @objname опущен и значение @oneresultset1
, возвращается следующий результирующий набор для предоставления текущих сведений о размере базы данных.
Имя столбца | Тип данных | Описание |
---|---|---|
database_name |
nvarchar(128) | Имя текущей базы данных. |
database_size |
varchar(18) | Размер текущей базы данных в мегабайтах.
database_size включает как файлы данных, так и журналы. |
unallocated space |
varchar(18) | Пространство в базе данных, которая не зарезервирована для объектов базы данных. |
reserved |
varchar(18) | Общий объем пространства, выделенный объектам в базе данных. |
data |
varchar(18) | Общий объем пространства, используемый данными. |
index_size |
varchar(18) | Общий объем пространства, используемый индексами. |
unused |
varchar(18) | Общий объем пространства, зарезервированный для объектов в базе данных, но пока не используемый. |
Если указан @objname , для указанного объекта возвращается следующий результирующий набор.
Имя столбца | Тип данных | Описание |
---|---|---|
name |
nvarchar(128) | Имя объекта, для которого были запрошены сведения об используемом пространстве. Имя схемы объекта не возвращается. Если требуется имя схемы, используйте sys.dm_db_partition_stats или sys.dm_db_index_physical_stats динамические административные представления для получения эквивалентных сведений о размере. |
rows |
char(20) | Количество существующих строк в таблице. Если указанный объект является очередью Service Broker, этот столбец указывает количество сообщений в очереди. |
reserved |
varchar(18) | Общий объем зарезервированного пространства для @objname. |
data |
varchar(18) | Общий объем пространства, используемого данными в @objname. |
index_size |
varchar(18) | Общий объем пространства, используемого индексами в @objname. |
unused |
varchar(18) | Общий объем пространства, зарезервированного для @objname , но еще не использован. |
Этот режим используется по умолчанию, если параметры не указаны. Следующие результирующие наборы возвращают сведения о размере базы данных на диске.
Имя столбца | Тип данных | Описание |
---|---|---|
database_name |
nvarchar(128) | Имя текущей базы данных. |
database_size |
varchar(18) | Размер текущей базы данных в мегабайтах.
database_size включает как файлы данных, так и журналы. Если база данных содержит файловую группу, это значение включает общий MEMORY_OPTIMIZED_DATA размер всех файлов контрольных точек на диске в файловой группе. |
unallocated space |
varchar(18) | Пространство в базе данных, которая не зарезервирована для объектов базы данных. Если база данных имеет файловую группу, это значение включает общий MEMORY_OPTIMIZED_DATA размер файлов контрольных точек на диске с состоянием PRECREATED в файловой группе. |
Пространство, используемое таблицами в базе данных. Этот результирующий набор не отражает оптимизированные для памяти таблицы таблицы, так как для каждой таблицы не выполняется учет использования дисков:
Имя столбца | Тип данных | Описание |
---|---|---|
reserved |
varchar(18) | Общий объем пространства, выделенный объектам в базе данных. |
data |
varchar(18) | Общий объем пространства, используемый данными. |
index_size |
varchar(18) | Общий объем пространства, используемый индексами. |
unused |
varchar(18) | Общий объем пространства, зарезервированный для объектов в базе данных, но пока не используемый. |
Следующий результирующий набор возвращается только в том случае, если база данных имеет файловую группу с хотя бы одним контейнером MEMORY_OPTIMIZED_DATA
:
Имя столбца | Тип данных | Описание |
---|---|---|
xtp_precreated |
varchar(18) | Общий размер файлов контрольных точек с состоянием PRECREATED в КБ. Подсчитывается к нераспределированному пространству в базе данных в целом. Например, если в этом столбце содержится 600000 KB 600 000 КБ предварительно созданных файлов контрольных точек. |
xtp_used |
varchar(18) | Общий размер файлов контрольных точек с состояниями UNDER CONSTRUCTION и ACTIVE MERGE TARGET базами знаний. Это значение — это место на диске, активно используемое для данных в оптимизированных для памяти таблицах. |
xtp_pending_truncation |
varchar(18) | Общий размер файлов контрольных точек с состоянием WAITING_FOR_LOG_TRUNCATION в КБ. Это значение — это место на диске, используемое для файлов контрольных точек, ожидающих очистки, после усечения журнала. |
Если @objname опущен, значение @oneresultset равно 1
и @include_total_xtp_storage1
, возвращается следующий один результирующий набор для предоставления текущих сведений о размере базы данных. Если @include_total_xtp_storage ( 0
по умолчанию), последние три столбца опущены.
Имя столбца | Тип данных | Описание |
---|---|---|
database_name |
nvarchar(128) | Имя текущей базы данных. |
database_size |
varchar(18) | Размер текущей базы данных в мегабайтах.
database_size включает как файлы данных, так и журналы. Если база данных содержит файловую группу, это значение включает общий MEMORY_OPTIMIZED_DATA размер всех файлов контрольных точек на диске в файловой группе. |
unallocated space |
varchar(18) | Пространство в базе данных, которая не зарезервирована для объектов базы данных. Если база данных имеет файловую группу, это значение включает общий MEMORY_OPTIMIZED_DATA размер файлов контрольных точек на диске с состоянием PRECREATED в файловой группе. |
reserved |
varchar(18) | Общий объем пространства, выделенный объектам в базе данных. |
data |
varchar(18) | Общий объем пространства, используемый данными. |
index_size |
varchar(18) | Общий объем пространства, используемый индексами. |
unused |
varchar(18) | Общий объем пространства, зарезервированный для объектов в базе данных, но пока не используемый. |
xtp_precreated
1 |
varchar(18) | Общий размер файлов контрольных точек с состоянием PRECREATED в КБ. Это значение учитывается в отношении нераспределенного пространства в базе данных в целом. Возвращает, NULL если база данных не имеет файловой группы с хотя бы одним контейнером MEMORY_OPTIMIZED_DATA . |
xtp_used
1 |
varchar(18) | Общий размер файлов контрольных точек с состояниями UNDER CONSTRUCTION и ACTIVE MERGE TARGET базами знаний. Это значение — это место на диске, активно используемое для данных в оптимизированных для памяти таблицах. Возвращает, NULL если база данных не имеет файловой группы с хотя бы одним контейнером MEMORY_OPTIMIZED_DATA . |
xtp_pending_truncation
1 |
varchar(18) | Общий размер файлов контрольных точек с состоянием WAITING_FOR_LOG_TRUNCATION в КБ. Это значение — это место на диске, используемое для файлов контрольных точек, ожидающих очистки, после усечения журнала. Возвращает, NULL если база данных не имеет файловой группы с хотя бы одним контейнером MEMORY_OPTIMIZED_DATA . |
1 Только если для @include_total_xtp_storage задано 1
значение .
Замечания
Значениеdatabase_size
, как правило, больше reserved
+ unallocated space
суммы, так как оно включает размер файлов журнала, но reserved
и unallocated_space
рассмотрите только страницы данных. В некоторых случаях с Azure Synapse Analytics эта инструкция может не быть верной.
Страницы, используемые XML-индексами и полнотекстовых индексов, включаются index_size
в оба результирующих набора. При указании @objname страницы xml-индексов и полнотекстовых индексов для объекта также учитываются в общей reserved
сумме и index_size
результатах.
Если использование пространства вычисляется для базы данных или объекта, являющегося пространственным индексом, столбцы размера пространства, например database_size
reserved
, и index_size
включают размер пространственного индекса.
При указании @updateusage SQL Server ядро СУБД сканирует страницы данных в базе данных и sys.allocation_units
вносит все необходимые исправления sys.partitions
в представления каталога в отношении места хранения, используемого каждой таблицей. Существуют некоторые ситуации, например после удаления индекса, когда сведения о пространстве таблицы могут не быть текущими.
@updateusage может занять некоторое время для выполнения в больших таблицах или базах данных. Используйте @updateusage только в том случае, если возвращаются неправильные значения, и если процесс не оказывает негативного влияния на других пользователей или процессы в базе данных. При желании DBCC UPDATEUSAGE
можно выполнять отдельно.
Примечание.
При удалении или перестроении больших индексов или удалении или усечении больших таблиц ядро СУБД откладывает фактическое размещение сделки страниц и связанные с ними блокировки до тех пор, пока транзакция не будет зафиксирована. Отложенные операции удаления немедленно не освобождают выделенное пространство. Таким образом, значения, возвращаемые sp_spaceused
сразу после удаления или усечения большого объекта, могут не отражать фактическое свободное место на диске.
Разрешения
Разрешение на выполнение sp_spaceused
предоставляется общедоступной роли. Параметр @updateusage могут указывать только члены предопределенной роли базы данных db_owner.
Примеры
А. Отображение сведений о пространстве диска для таблицы
В следующем примере предоставляются сведения о месте на диске для таблицы Vendor
и ее индексах.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor';
GO
В. Отображение обновленных сведений о пространстве базы данных
В следующем примере суммируется пространство, используемое в текущей базе данных, и используется необязательный параметр @updateusage для обеспечения возврата текущих значений.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @updateusage = N'TRUE';
GO
В. Отображение сведений об использовании пространства для удаленной таблицы, связанной с таблицей с поддержкой Stretch
В следующем примере приводится сводка пространства, используемого удаленной таблицей, связанной с таблицей с поддержкой Stretch, с помощью аргумента @mode для указания удаленного целевого объекта. Дополнительные сведения см. в разделе Stretch Database.
USE StretchedAdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor', @mode = 'REMOTE_ONLY';
Д. Отображение сведений об использовании пространства для базы данных в одном результирующем наборе
В следующем примере приводится сводка использования пространства для текущей базы данных в одном результирующем наборе.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @oneresultset = 1;
Е. Отображение сведений об использовании пространства для базы данных с по крайней мере одной MEMORY_OPTIMIZED файловой группой в одном результирующем наборе
В следующем примере приводится сводка использования пространства для текущей базы данных с хотя бы одной MEMORY_OPTIMIZED
группой файлов в одном результирующем наборе.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
@updateusage = 'FALSE',
@mode = 'ALL',
@oneresultset = '1',
@include_total_xtp_storage = '1';
GO
F. Отображение сведений об использовании пространства для объекта таблицы MEMORY_OPTIMIZED в базе данных
В следующем примере приводится сводка использования пространства для объекта таблицы в текущей MEMORY_OPTIMIZED
базе данных по крайней мере с одной MEMORY_OPTIMIZED
группой файлов.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
@objname = N'VehicleTemperatures',
@updateusage = 'FALSE',
@mode = 'ALL',
@oneresultset = '0',
@include_total_xtp_storage = '1';
GO
Связанный контент
- Инструкция CREATE INDEX (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- DBCC UPDATEUSAGE (Transact-SQL)
- Service Broker
- sys.allocation_units (Transact-SQL)
- sys.indexes (Transact-SQL)
- sys.index_columns (Transact-SQL)
- sys.objects (Transact-SQL)
- sys.partitions (Transact-SQL)
- Системные хранимые процедуры (Transact-SQL)