1
resposta

Clustered

O que seria o CLUSTERED ao lado do comando primary key? Para que serve?

1 resposta

Olá Jaelson, tudo bem? Eu mesmo respondi uma dúvida bastante semelhante, nesse outro tópico. Minha opinião é:

Primeiro o que você deve saber é que mesmo se você não informar a clausura CLUSTERED, por padrão o SQL Server vai criar o campo do tipo CLUSTERED, então ambos os comandos que você usou resultaram na mesma ação, então ambos os comandos não tem diferença, você pode perceber isso fazendo o seguinte, crie duas tabelas, uma usando o CLUSTERED e outra sem usar, e depois execute o comando para cada uma das duas tabelas:

SELECT * FROM sys.indexes
WHERE object_id = OBJECT_ID('nome_da_tabela')

Como resultado ambas as consultas você vai ter como o resultado o "CLUSTERED" no campo TYPE_DESC.

A diferença que existe na verdade é entre os campos do tipo CLUSTEREDe NONCLUSTERED. Os índices do tipo CLUSTERED define a ordem em que os dados são fisicamente armazenados em uma tabela, isso dentro da tabela, sendo único, já os índices NONCLUSTERED é armazenado em um local e os dados da tabela são armazenados em outro local. Assim, os índices CLUSTERED ganham em performance por estarem na própria tabela.

Espero ter esclarecido sua dúvida!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software