Stiamo discutendo se utilizzare l'opzione SORT_IN_TEMPDB per le nostre tabelle DW. La mia comprensione è che ci sono più scritture quando si utilizza questa opzione, sebbene siano più sequenziali. Abbiamo una SAN (che a volte è stata notoriamente lenta), quindi nel nostro caso vogliamo limitare il più possibile il numero di scritture. Credo che tempdb sia su un LUN separato (set di dischi).
Abbiamo un sacco di spazio su disco nel nostro file di dati e nel nostro file tempdb. In questo caso, trarremmo vantaggio dall'utilizzo di SORT_IN_TEMPDB?
Una cosa che mi ha colpito è stato questo commento su questa risposta
Quando si ricostruisce un indice, è necessario il doppio dello spazio dell'indice + 20% per l'ordinamento. Quindi, in generale, per ricostruire ogni indice nel tuo db hai solo bisogno del 120% del tuo indice più grande nel tuo DB. Se usi SORT_IN_TEMPDB, vinci solo il 20%, hai ancora bisogno di un 100% adizionale nel tuo file di dati. Inoltre, l'uso di sort in tempdb aumenta drasticamente il carico di I / O, poiché invece di scrivere l'indice una volta nel file di dati, ora lo si scrive una volta nel tempdb e quindi lo si scrive nel file di dati. Quindi non è sempre l'ideale.
Sicuramente non vogliamo aumentare il nostro carico di I / O con la nostra SAN lenta / forse erroneamente configurata.
Quale sarebbe il modo migliore per testarlo? Ricostruendo semplicemente la tabella con e senza l'opzione e registrando i tempi?
Modifica : abbiamo 8 file tempdb, ciascuno da 15 GB. Abbiamo impostato i flag TF 1117/1118 e IFI è abilitato. Al momento eseguiamo una combinazione di ricostruzione con l'opzione sort_in_tempdb e senza di essa.
Grazie!
SQL Server 2012 Enterprise