In primo luogo, patch: assicurati di essere sul Service Pack 1 Aggiornamento cumulativo 10 o più recente del 2012. In SQL 2014, Microsoft ha modificato TempDB in modo da renderlo meno desideroso di scrivere su disco , e lo ha incredibilmente portato indietro in CU10 SP1 2012 , in modo da poter alleviare la pressione di scrittura di TempDB.
In secondo luogo, ottieni numeri esatti sulla tua latenza. Controlla sys.dm_io_virtual_file_stats per vedere lo stallo di scrittura medio per i tuoi file TempDB. Il mio modo preferito per farlo è:
sp_BlitzFirst @ExpertMode = 1, @Seconds = 30 /* Checks for 30 seconds */
sp_BlitzFirst @SinceStartup = 1 /* Shows data since startup, but includes overnights */
Guarda la sezione delle statistiche dei file e concentrati sulle scritture fisiche. I dati SinceStartup possono essere un po 'fuorvianti poiché includono anche i periodi in cui CHECKDB è in esecuzione e ciò può davvero martellare il tuo TempDB.
Se la latenza di scrittura media è superiore a 3 ms, quindi sì, potresti avere memoria a stato solido nella tua SAN, ma non è ancora veloce.
Considerare prima gli SSD locali per TempDB. I buoni SSD locali (come le schede PCIe NVMe di Intel, che costano meno di $ 2k USD specialmente alle dimensioni che stai descrivendo) hanno una latenza estremamente bassa, inferiore a quella che puoi ottenere con l'archiviazione condivisa. Tuttavia, sotto la virtualizzazione, ciò presenta uno svantaggio: non è possibile vMotion il guest da un host all'altro per reagire al caricamento o a problemi hardware.
Prendi in considerazione un'unità RAM per ultima. Ci sono due grandi gotcha con questo approccio:
In primo luogo, se hai davvero un'attività di scrittura TempDB pesante, la velocità di modifica in memoria potrebbe essere così alta che non sarai in grado di vMotion l'ospite da un host all'altro senza che nessuno se ne accorga. Durante vMotion, è necessario copiare il contenuto della RAM da un host a un altro. Se sta davvero cambiando così velocemente, più velocemente di quanto tu possa copiarlo sulla tua rete vMotion, puoi incorrere in problemi (specialmente se questa casella è coinvolta con mirroring, AG o un cluster di failover).
In secondo luogo, le unità RAM sono software. Nei test di carico che ho fatto, non sono rimasto molto colpito dalla loro velocità con un'attività TempDB davvero pesante. Se è così pesante che un SSD di livello aziendale non riesce a tenere il passo, allora dovrai tassare anche il software dell'unità RAM. Avrai davvero voglia di caricare questo test pesantemente prima di andare in diretta - prova cose come molte ricostruzioni simultanee di indici su indici diversi, tutti usando sort-in-tempdb.