Entendo que pode haver uma diferença de significado ou intenção entre os dois, mas existem diferenças de comportamento ou desempenho entre uma chave primária em cluster e um índice exclusivo em cluster?
17
Entendo que pode haver uma diferença de significado ou intenção entre os dois, mas existem diferenças de comportamento ou desempenho entre uma chave primária em cluster e um índice exclusivo em cluster?
Uma diferença principal é que o índice exclusivo pode ter um valor NULL que não é permitido na chave primária. Em cluster ou não, essa é a principal diferença entre a implementação prática de uma Chave Primária e uma Chave Única.
Ah, e o fato de uma mesa ter um PK e muitos UK :-).
Ambas são diferenças em INTENT e não em DESEMPENHO. Caso contrário, não acho que haja diferença. Por trás de qualquer PK ou Reino Unido, o SQL Server cria um índice (dependendo da solicitação, agrupada ou não) e a maneira como é usada é transparente para a origem.
NOT NULL UNIQUE CLUSTERED
ou (B) para destacar que um UQ específico é "especial" no sentido de metadados, mesmo que o RDMS seja agnóstico?PRIMARY KEY
eNOT NULL UNIQUE
, o primeiro seria muito mais difícil de se transformarNULL UNIQUE
(principalmente se a restrição já tiver sido referenciada por uma chave estrangeira). Certamente impediria alterações acidentais deNOT NULL
paraNULL
.Entre uma chave primária em cluster e um índice em cluster exclusivo, não há outro diferente, pois o índice em cluster exclusivo pode ter um valor NULL.
Um índice em cluster não exclusivo possui um identificador exclusivo que deve ser tratado para valores não exclusivos.
fonte