Ho una procedura memorizzata che tronca alcune tabelle con circa 1,75 M di righe in ciascuna, prima di inserire nuovi dati (basati su dati in altre tabelle, calcoli ecc.)
Lo schema di base è molto semplice:
- Tronca le tabelle
- Inserire 1,75 milioni di righe in "lotti" di circa 75.000 alla volta.
Mi chiedo se dovrei ricostruire esplicitamente gli indici in qualsiasi momento in questo processo? per esempio
- Tronca le tabelle
ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90)
[o qualcosa di simile]- Inserisci righe da 1,75 milioni
o forse
ALTER INDEX ALL ON xxx DISABLE
- Tronca le tabelle
- Inserisci righe da 1,75 milioni
ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90)
[o qualcosa di simile]
Qualunque assistenza è stata apprezzata ... non un DBA - un Dev che conosce abbastanza bene DB è più preciso!
insert into
e al momento non esiste una order by
clausola, ma potrei aggiungerlo se potesse aiutare? ID e codice sono anche indicizzati separatamente.