Consentitemi quindi di prefazione dicendo che non ho il controllo totale sulla mia progettazione di database, quindi molti aspetti del sistema attuale non possono essere modificati ai fini di questo scenario.
I commenti su come dovremmo ripensare gli aspetti del progetto sono probabilmente corretti ma inutili :)
Ho una tabella molto grande, larga circa 150 campi e circa 600 m di file, che guida un gran numero di processi. Questo si trova in una situazione di data warehouse, quindi non abbiamo NESSUN aggiornamento / inserto al di fuori del processo di caricamento pianificato, quindi è fortemente indicizzato.
È stata presa la decisione di provare a partizionare questa tabella e ho alcune preoccupazioni riguardo all'indicizzazione di una tabella partizionata. Non ho alcuna esperienza con il partizionamento, quindi qualsiasi input o link sono apprezzati. Non sono riuscito a individuare in modo specifico ciò che sto cercando su BOL o msdn.
Attualmente ci raggruppiamo in un campo che chiameremo IncidentKey
che è un varchar(50)
e non unico: potremmo avere tra 1 e 100 record con lo stesso IK
(nessun commento, per favore). Riceviamo spesso nuovi dati su vecchi IncidentKey
record, quindi non sono neanche sequenziali.
Comprendo che devo includere il mio campo di partizione IncidentDate
, nella mia chiave di indice cluster affinché la partizione funzioni correttamente. Sto pensando che sarebbe IncidentKey, IncidentDate
.
La domanda è: come funzioneranno i meccanici di un indice cluster su una chiave a 2 parti in una tabella partizionata, se un record in una "nuova" partizione dovrebbe essere prima di un record in una "vecchia" partizione dell'indice cluster?
Ad esempio, ho 5 record:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
Se ottengo un nuovo record ABC123, 2/1/2011
perché dovrà essere nell'indice cluster PRIMA XYZ999, 1/1/2010
. Come funziona?
Sto assumendo frammentazione e puntatori, ma non riesco a trovare alcuna informazione sulla memoria fisica e sulla configurazione degli indici cluster non partizionati su tabelle partizionate con chiavi a doppia parte.