Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Описывает и исправляет неточности в подсчете страниц и строк в представлениях каталога. Эти неточности могут привести к неправильным отчетам об использовании пространства, возвращенным системной sp_spaceused хранимой процедурой.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DBCC UPDATEUSAGE
( { database_name | database_id | 0 }
[ , { table_name | table_id | view_name | view_id }
[ , { index_name | index_id } ] ]
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ] ]
Аргументы
| database_namedatabase_id | 0
Имя или идентификатор базы данных, для которой необходимо сообщить и исправить статистику использования пространства. Если указано значение 0, используется текущая база данных. Имена баз данных должны соответствовать правилам идентификаторов.
table_name | table_id | view_name | view_id
Имя или идентификатор таблицы или индексированного представления, для которого необходимо сообщить и исправить статистику использования пространства. Имена таблиц и представлений должны соответствовать требованиям, предъявляемым к идентификаторам.
index_id | index_name
Идентификатор или имя используемого индекса. Если этот аргумент не указан, инструкция обрабатывает все индексы для указанной таблицы или представления.
ВМЕСТЕ С
Позволяет указывать параметры.
NO_INFOMSGS
Подавляет вывод всех информационных сообщений.
COUNT_ROWS
Указывает, что столбец row count обновляется текущим значением количества строк в таблице или представлении.
Замечания
DBCC UPDATEUSAGE исправляет строки, используемые страницы, зарезервированные страницы, конечные страницы и количество страниц данных для каждой секции в таблице или индексе. Если в системных таблицах отсутствуют неточности, DBCC UPDATEUSAGE возвращает данные. Если обнаружены и исправлены неточности, а NO_INFOMSGS WITH не используется, DBCC UPDATEUSAGE возвращает строки и столбцы, обновляемые в системных таблицах.
DBCC CHECKDB улучшено, чтобы определить, когда количество страниц или строк становится отрицательным. При обнаружении выходные DBCC CHECKDB данные содержат предупреждение и рекомендацию по устранению DBCC UPDATEUSAGE проблемы.
Рекомендации
Мы рекомендуем следующее:
- Не выполняйтесь
DBCC UPDATEUSAGEрегулярно, так как SQL Server сохраняет метаданные в большинстве случаев.DBCC UPDATEUSAGEследует запускать по мере необходимости, например, если вы подозреваетеsp_spaceused, что неправильные значения возвращаются.DBCC UPDATEUSAGEможет занять некоторое время для выполнения в больших таблицах или базах данных. - Рекомендуется регулярно выполнять
DBCC UPDATEUSAGE(например, еженедельно) только в том случае, если база данных проходит частые изменения языка определения данных (DDL), например инструкции CREATE, ALTER или DROP.
Результирующие наборы
DBCC UPDATEUSAGE возвращает (значения могут отличаться):
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Разрешения
Необходимо быть членом предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner .
Примеры
А. Обновление счетчиков страниц или строк или обоих объектов в текущей базе данных
В следующем примере в качестве имени базы данных указывается значение 0, и инструкция DBCC UPDATEUSAGE выдает обновленные сведения о подсчете страниц или строк для текущей базы данных.
DBCC UPDATEUSAGE (0);
GO
B. Обновление счетчиков страниц или строк или как для AdventureWorks, так и для подавления информационных сообщений
В следующем примере в качестве имени базы данных указано AdventureWorks2025, а все информационные сообщения подавлены.
DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO
В. Обновление счетчиков страниц или строк или обоих для таблицы Employee
В приведенном ниже примере выдаются обновленные сведения о подсчете страниц или строк для таблицы Employee в базе данных AdventureWorks2025.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee');
GO
D. Обновление счетчиков страниц или строк или обоих индексов в таблице
В следующем примере указано имя индекса IX_Employee_ManagerID.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);
GO