Membagi TempDB menjadi beberapa file dengan jumlah CPU yang sama

8

Artikel SQL Server tempdb Best Practices Meningkatkan Kinerja menunjukkan bahwa saya harus membagi tempdbmenjadi beberapa file yang sama dengan jumlah core. Jadi untuk 4 core Anda mendapatkan 4 file.

Dengan memiliki jumlah file yang lebih besar, Anda dapat meningkatkan jumlah operasi I / O fisik yang SQL Server dapat mendorong ke disk pada satu waktu. Semakin banyak I / O yang SQL Server dapat mendorong ke tingkat disk, semakin cepat database akan berjalan. Dengan database standar, SQL Server dapat menyimpan banyak data yang diperlukan ke dalam memori. Karena sifat menulis tempdb yang tinggi, data harus ditulis ke disk sebelum dapat di-cache kembali ke memori.

Meskipun kedengarannya bagus secara teori, apakah benar-benar sebagus optimasi umum? Apakah ini sesuatu yang mungkin hanya berlaku untuk sistem tertentu di mana IO sangat tinggi?

Praha Sangha
sumber

Jawaban:

13

Rasio 1/4 hingga 1/2 kali jumlah file data TempDB ke core mesin telah lama direkomendasikan ...

Tapi sekarang ada panduan yang lebih baik. Di PASS pada 2011, teman baik saya Bob Ward, yang merupakan orang teratas dalam Dukungan Produk SQL, menganut formula baru: jika Anda memiliki kurang dari 8 core, gunakan #files = #cores. Jika Anda memiliki lebih dari 8 core, gunakan 8 file dan jika Anda melihat pertengkaran di dalam memori, tambahkan 4 file sekaligus. [tautan]

Kalimat terakhir selalu relevan. Jika Anda tidak melihat pertengkaran, mengapa menambahkan file tambahan? Untuk bermain aman, sebagian besar akan menambahkan 2-4 file sebagai titik awal untuk sebagian besar bangunan tetapi di luar itu, mengukur dan bereaksi.

Mark Storey-Smith
sumber
10

Seperti kebanyakan pedoman umum , ini adalah penyederhanaan berlebihan dalam hal yang paling positif. Paling-paling, ini adalah titik awal yang baik (asalkan Anda tidak menjaga rasio file data inti 1: 1 dengan sejumlah besar core).

Tidak ada pengganti untuk desain yang tepat dan pemantauan tindak lanjut dan baselining yang tepat . Alasan di balik memiliki beberapa file data untuk tempdb adalah untuk mengurangi dan mengurangi pertikaian halaman alokasi. Ada banyak posting yang dipublikasikan tentang cara memantau pertentangan ini dan mengambil tindakan yang sesuai. Berikut adalah beberapa sumber:

Breaking Down TempDB Contention (Bagian 1)
Breaking Down TempDB Contention (Bagian 2)
Menganalisis Tempdb Contention
Mengoptimalkan konfigurasi tempdb dengan SQL Server 2012 Extended Events

Tetapi untuk menjawab pertanyaan Anda, tidak, ini bukan bagian konfigurasi-dan-lupakan tempdb yang sulit dan cepat .

Thomas Stringer
sumber