Dados espaciais – sys.dm_db_objects_disabled_on_compatibility_level_change
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure
Lista os índices e restrições que serão desabilitados como resultado da alteração do nível de compatibilidade em SQL Server. Índices e restrições que contêm colunas computadas persistentes cujas expressões usam UDTs espaciais serão desabilitadas depois de atualizar ou alterar nível de compatibilidade. Use essa função de gerenciamento dinâmico para determinar o impacto de uma alteração no nível de compatibilidade.
Convenções de sintaxe de Transact-SQL
Sintaxe
sys.dm_db_objects_disabled_on_compatibility_level_change ( compatibility_level )
Argumentos
compatibility_level
int que identifica o nível de compatibilidade que você planeja definir.
Tabela retornada
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
class | int | 1 = restrições 7 = índices e heaps |
class_desc | nvarchar(60) | OBJECT ou COLUMN para restrições INDEX para índices e heaps |
major_id | int | OBJECT ID de restrições OBJECT ID da tabela que contém índices e heaps |
minor_id | int | NULL para restrições Index_id para índices e heaps |
Dependência | nvarchar(60) | Descrição da dependência que está causando a desabilitação da restrição ou do índice. Os mesmos valores também são usados nos avisos que são lançados durante atualização. Os exemplos incluem o seguinte: "space" para um intrínseco "geometry" para um sistema UDT "geography::Parse" para um método de um sistema UDT |
Comentários gerais
Colunas computadas persistentes que usam algumas funções intrínsecas são desabilitadas quando o nível de compatibilidade é alterado. Além disso, colunas computadas persistentes que usam qualquer método de geometria ou geografia são desabilitadas quando um banco de dados é atualizado.
Que funções causam a desabilitação de colunas computadas persistentes?
Quando as funções a seguir são usadas na expressão de uma coluna computada persistente, elas causam a desabilitação de índices e restrições que fazem referência a essas colunas quando o nível de compatibilidade é alterado de 80 para 90:
- IsNumeric
Quando as funções a seguir são usadas na expressão de uma coluna computada persistente, elas causam a desabilitação de índices e restrições que fazem referência a essas colunas quando o nível de compatibilidade é alterado de 100 para 110 ou superior:
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
Geography:: STUnion
Geography:: STIntersection
Geography:: STDifference
Geography:: STSymDifference
Geography:: STBuffer
Geography:: BufferWithTolerance
Geografia:: Analisar
Geography:: Reduce
Comportamento dos objetos desabilitados
Índices
Se o índice clusterizado estiver desabilitado ou se um índice não clusterizado for forçado, o seguinte erro será gerado: "O processador de consultas não poderá produzir um plano porque o índice '%.*ls' na tabela ou exibição '%.*ls' está desabilitado." Para reabilitar esses objetos, recompile os índices após a atualização chamando ALTER INDEX ON ... REBUILD.
Heaps
Se uma tabela com um heap desabilitado for usada, o erro a seguir será lançado. Para reabilitar esses objetos, recompile após a atualização chamando ALTER INDEX ALL ON ... REBUILD.
// 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
Se você tentar recompilar o heap durante uma operação online, um erro será gerado.
Verificar restrições e chaves estrangeiras
Restrições de verificação desabilitadas e chave estrangeiras não lançam um erro. Porém, as restrições não são impostas quando linhas são modificadas. Para reabilitar esses objetos, verifique as restrições após a atualização chamando ALTER TABLE ... RESTRIÇÃO DE VERIFICAÇÃO.
Colunas computadas persistentes
Como não é possível desabilitar uma única coluna, a tabela inteira é desabilitada com a desabilitação do índice clusterizado ou heap.
Segurança
Permissões
Exige a permissão VIEW DATABASE STATE.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW DATABASE PERFORMANCE STATE no banco de dados.
Exemplo
O exemplo a seguir mostra uma consulta em sys.dm_db_objects_disabled_on_compatibility_level_change para localizar os objetos afetados alterando o nível de compatibilidade para 120.
SELECT * FROM sys.dm_db_objects_disabled_on_compatibility_level_change(120);
GO
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de