Apakah ada manfaat kinerja untuk menempatkan file log transaksi pada drive terpisah?

9

Ada banyak posting blog dan artikel praktik terbaik memuji manfaat menempatkan file data SQL Server pada satu hard drive dan log transaksi pada yang lain. Alasan yang diberikan adalah bahwa file database akan mengalami pembacaan dan penulisan acak sedangkan log transaksi hanya akan memiliki penulisan berurutan.

Tetapi bagaimana jika Anda memiliki ratusan database? Apakah ada manfaat kinerja sebenarnya untuk menempatkan ratusan file log transaksi pada disk terpisah? Jika beberapa log transaksi sedang ditulis, maka saya akan berpikir log transaksi menulis akan sama acak seperti yang ditulis oleh database.

8kb
sumber

Jawaban:

7

Benar. Secara teori, jika Anda memiliki 100-an DB, Anda membutuhkan 100-an drive, satu untuk setiap log. Dalam prakteknya meskipun seseorang tidak peduli dengan kasus seperti itu, karena ketika Anda memiliki 100-an DB, Anda jelas tidak mengharapkan kinerja TPC terbaik untuk setiap DB. Anda mungkin akan memiliki beberapa DB dengan throughput tinggi dan SLA yang ketat dan Anda dapat memilikinya masing-masing pada spindle yang terpisah, sementara banyak SLA tingkat yang lebih rendah menjejalkan pada beberapa disk bersama.

Remus Rusanu
sumber
2

Log transaksi persis seperti itu ... log berjalan dari semua transaksi. Karena itu ia mengisi terus menerus dalam satu arah sampai checkpointed dan ditimpa, atau terpotong dan ditimpa. Timpa itu berurutan.

Pertimbangkan file data Anda. Catatan pelanggan dapat berisi pesanan dari 5 tahun yang lalu, dan satu dari 10 tahun yang lalu. Jika Anda menghapus pesanan itu (misalnya, Anda mengarsipkan data di tempat lain), dalam tlog saat ini Anda telah menghapus 1, dan menghapus 2, secara berurutan. Namun dalam file data Anda, Anda telah menyentuh blok yang ditulis 5 & 10 tahun yang lalu.

Jadi itu tentu saja :)

Eric Higgins
sumber
2

Menempatkan log transaksi pada disk terpisah dengan sendirinya akan memberi Anda kinerja yang lebih baik daripada menempatkannya bersama dengan file data / log lainnya. Jika Anda menempatkan semua log pada disk yang sama, Anda sebenarnya tidak melakukan IO berurutan, tetapi IO acak di antara file-file log ini.

StanleyJohns
sumber