Em um certo tutorial, li que o autor está filtrando com sys.indexes
base no predicado index_id < 256000
. O que isso faz?
11
Em um certo tutorial, li que o autor está filtrando com sys.indexes
base no predicado index_id < 256000
. O que isso faz?
sys.sysindexkeys
sys.selective_xml_index_paths
,sys.xml_indexes
,sys.sysindexes
mas eu suponho que estes só vai ficar atualizado se o número mágico não é mais válido.Respostas:
Isso se baseia no equívoco de que os índices XML atualmente são o único tipo que poderia ter um esquema de ID> = 256000 (pelo menos com base em suas observações; esse esquema não está documentado no AFAIK, portanto, nem tenho certeza se é intencional). Provavelmente bem nas versões atuais, mas quem sabe que tipo de índice será adicionado a seguir e onde o esquema de identificação será iniciado? Se você deseja excluir índices XML, agora também está excluindo outra coisa. Os índices espaciais, por exemplo, parecem começar com id = 384000. Se a consulta acima pretender incluir índices espaciais, mas não índices XML, será uma surpresa.
Um filtro muito melhor seria:
... ou melhor ainda, uma vez que é auto-documentável ...
E agora, quando você também deseja excluir, por exemplo, índices espaciais, sua consulta muda para ...
... em vez de precisar descobrir qual intervalo numérico os valores de ID para índices espaciais podem ocupar (ou não). Boa sorte com isso.
Eles estão claramente documentados em sys.indexes (Transact-SQL) . Não vejo referência a esse número mágico e recomendo que você aponte o autor do tutorial aqui para que eles possam ver que esse número mágico não é algo em que deveriam confiar (não importa ensinar os outros a confiarem).
fonte
index_id
. Especialmente porque dados mais precisos para determinar o tipo estão bem ao lado ... literalmente.De acordo com o livro "Microsoft SQL Server 2012 Internals" Por Kalen Delaney, Craig Freeman, o index_id do índice XML começa a numerar com 256000. Portanto, para obter todas as informações de índices de tipo (consulta sys.indexes), mas ignorando índices XML, você pode colocar um filtro assim.
O mesmo conjunto de resultados pode ser obtido colocando o filtro na coluna de tipo sys.indexes. Para o tipo XML de índices, digite = 3.
ou
A coluna type_desc também pode ser usada.
fonte