Пространственные данные — sys.dm_db_objects_disabled_on_compatibility_level_change
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Выводит список индексов и ограничений, которые будут отключены в результате изменения уровня совместимости в SQL Server. Индексы и ограничения, содержащие материализованные вычисляемые столбцы, в выражениях которых используются пространственные определяемые пользователем типы, будут отключены после обновления или изменения уровня совместимости. Данная функция динамического управления используется для определения влияния изменений уровня совместимости.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.dm_db_objects_disabled_on_compatibility_level_change ( compatibility_level )
Аргументы
compatibility_level
Int , определяющий уровень совместимости, который планируется задать.
Возвращаемая таблица
Имя столбца | Тип данных | Description |
---|---|---|
class | int | 1 = ограничения 7 = индексы и кучи |
class_desc | nvarchar(60) | OBJECT или COLUMN для ограничений INDEX для индексов и куч |
major_id | int | OBJECT ID ограничений OBJECT ID таблицы, в которой содержатся индексы и кучи. |
minor_id | int | NULL для ограничений Index_id для индексов и куч |
зависимость | nvarchar(60) | Описание зависимости, которая вызывает отключение ограничения или индекса. Эти же значения используются также в предупреждениях, возникающих во время обновления. Примеры: space для встроенных geometry для системы определяемого пользователем типа geography::Parse для метода системного определяемого пользователем типа |
Общие замечания
Материализованные вычисляемые столбцы, использующие некоторые встроенные функции, отключаются при изменении уровня совместимости. Кроме того, материализованные вычисляемые столбцы, использующие геометрический или географический метод, отключаются при обновлении базы данных.
Использование каких функций приводит к отключению материализованных вычисляемых столбцов?
При использовании следующих функций в выражении материализованных вычисляемых столбцов происходит отключение индексов и ограничений, которые ссылаются на данные столбцы, в ходе изменения уровня совместимости с 80 на 90.
- IsNumeric
При использовании следующих функций в выражении материализованных вычисляемых столбцов происходит отключение индексов и ограничений, которые ссылаются на данные столбцы, в ходе изменения уровня совместимости с 100 на 110 или выше.
Soundex
Geography:: GeomFromGML
Geography:: STGeomFromText
Geography:: STLineFromText
Geography:: STPolyFromText
Geography:: STMPointFromText
Geography:: STMLineFromText
Geography:: STMPolyFromText
Geography:: STGeomCollFromText
Geography:: STGeomFromWKB
Geography:: STLineFromWKB
Geography:: STPolyFromWKB
Geography:: STMPointFromWKB
Geography:: STMLineFromWKB
Geography:: STMPolyFromWKB
География:: STUnion
География:: STIntersection
География:: STDifference
Geography:: STSymDifference
География:: STBuffer
Geography:: BufferWithTolerance
География:: синтаксический анализ
География:: сокращение
Поведение отключенных объектов
Индексы
Если кластеризованный индекс отключен или если некластеризованный индекс принудительно, возникает следующая ошибка: "Обработчик запросов не может создать план, так как индекс "%.*ls" в таблице или представлении "%.*ls" отключен". Чтобы повторно включить эти объекты, перестройте индексы после обновления путем вызова ALTER INDEX ON ... ПЕРЕСТРОЙТЕ.
Кучи
При использовании таблицы с отключенной кучей возникает следующая ошибка. Чтобы повторно включить эти объекты, перестройте после обновления путем вызова ALTER INDEX ALL ON ... ПЕРЕСТРОЙТЕ.
// ErrorNumber: 8674
// ErrorSeverity: EX_USER
// ErrorFormat: The query processor is unable to produce a plan because the table or view '%.*ls' is disabled.
// ErrorCause: The table has a disabled heap.
// ErrorCorrectiveAction: Rebuild the disabled heap to enable it.
// ErrorInserts: table or view name
// ErrorOwner: mtintor
// ErrorFirstProduct: SQL11
При попытке перестроить кучу во время оперативной операции возникает ошибка.
Проверка ограничений и внешних ключей
При отключенных проверочных ограничениях и внешних ключах сообщение об ошибке не возникает. Однако ограничения не применяются при изменении строк. Чтобы повторно включить эти объекты, проверьте ограничения после обновления путем вызова ALTER TABLE ... ОГРАНИЧЕНИЕ CHECK.
Сохраненные вычисляемые столбцы
При отсутствии возможности отключения отдельного столбца отключается вся таблица посредством отключения кластеризованного индекса или кучи.
Безопасность
Разрешения
Необходимо разрешение VIEW DATABASE STATE.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW DATABASE PERFORMANCE STATE для базы данных.
Пример
В следующем примере показан запрос на sys.dm_db_objects_disabled_on_compatibility_level_change для поиска объектов, затронутых изменением уровня совместимости на 120.
SELECT * FROM sys.dm_db_objects_disabled_on_compatibility_level_change(120);
GO