2009-04-05 18 views
25

Questo blog http://blogs.msdn.com/sqlserverstorageengine/archive/2009/01/04/managing-tempdb-in-sql-server-tempdb-configuration.aspx afferma che è una buona idea "Spalmare TempDB su almeno un numero uguale di file di dimensioni pari a CORE o CPU".Come distribuire tempdb su più file?

Quindi la mia domanda di base è come configurare effettivamente il mio server SQL per farlo. Quindi clicco con il tasto destro sul tempdb, scelgo proprietà, file e poi aggiungo un file per ogni CPU? Come fa a sapere che dovrebbe diffondere il tempdb su questi file? c'è una bandiera che dovrei impostare?

Ho frainteso l'articolo?

risposta

38

Questo suggerimento è il migliore se si riesce a diffondere i file TempDB aggiuntivi su diversi dischi rigidi. In caso contrario, i diversi thread che creano diverse tabelle temporanee saranno in conflitto per lo stesso disco fisico.

Si può effettivamente fare esattamente ciò che si dice di fare e il lavoro verrà automaticamente distribuito tra i file di dati TempDB. Questo può anche essere script come tale:

ALTER DATABASE tempdb 
ADD FILE (NAME = tempdev2, FILENAME = 'W:\tempdb2.mdf', SIZE = 256); 
ALTER DATABASE tempdb 
ADD FILE (NAME = tempdev3, FILENAME = 'X:\tempdb3.mdf', SIZE = 256); 
ALTER DATABASE tempdb 
ADD FILE (NAME = tempdev4, FILENAME = 'Y:\tempdb4.mdf', SIZE = 256); 
GO 

per farti tre file aggiuntivi (vale a dire 4 core della CPU e 4 dischi fisici).

+0

Grazie Jesse. Quindi suppongo di poter anche fare quelle alter istruzioni attraverso la GUI. È lo stesso per ogni file db. Se aggiungo un file aggiuntivo a un altro database, il server SQL distribuirà automaticamente il carico su quei file? – Jimmymcnulty

+0

Questo è esattamente come lo capisco, sì. Naturalmente, se lo fai per più CPU/dischi di quello che hai, i ritorni diminuiranno leggermente. Questa è sicuramente una di quelle situazioni di Your Mileage May Vary. Misura le tue prestazioni presto e spesso! –

+0

E i file di registro? Creiamo nuovi file di registro per abbinare i nuovi file di dati? Oppure i file di registro corrispondenti vengono creati automaticamente da SQL Server come e quando necessario? – Mark

Problemi correlati