Sto aggiornando un database Jet a SQL Server Express 2008 R2 e prima di farlo, sto rivalutando lo schema (è stato progettato nel 1997-98 e il ragazzo che progettato (cioè, io) era qualcosa di un deficiente!).Indicizzazione di singoli campi di chiavi composite di SQL Server
La mia domanda riguarda N: N join tabelle con una chiave composita a due colonne. In Jet, i join sulla prima colonna di una chiave composita a due colonne utilizzeranno l'indice composito, ma i join sulla seconda colonna non lo faranno, quindi in generale, nei database Jet con tabelle N: N di grandi dimensioni con un numero ragionevolmente elevato di record , oltre all'indice composito aggiungo un secondo indice non univoco sulla seconda colonna.
È una buona idea in SQL Server?
(forse non è una buona idea in Jet?)
Qualsiasi svantaggio, a parte gli evidenti problemi di manutenzione dell'indice? –
Considerazioni sullo spazio per la memorizzazione dell'indice. Overhead aggiuntivo sulle operazioni di inserimento/aggiornamento/cancellazione. Considera anche la cardinalità di ColumnB. Se è bassa cardinalità (pochi valori unici), l'indice potrebbe non essere di aiuto. –
In generale, la mia ColumnB ha una cardinalità inferiore a ColumnA. Riuscirebbe a invertirli e ad aggiungere l'indice non duplicato sulla colonna con la cardinalità più elevata sarebbe più efficiente? –