Adakah yang menjalankan SQL Server di solid-state drive? Sudahkah Anda menemukan kiat pengoptimalan spesifik? Saya secara khusus tertarik pada cara-cara untuk mengurangi frekuensi SQL Server melakukan operasi penulisan acak kecil karena mereka adalah musuh kinerja SSD, khususnya drive SSD MLC.
Ada beberapa optimasi yang jelas bisa dilakukan, tentu saja: data read-heavy harus dilayani dari SSD, dan hal-hal yang berat harus diserahkan ke disk spinning tradisional. Itu termasuk log transaksi, tentu saja!
Dengan anggaran yang cukup, tentu saja, orang ingin menggunakan disk SLC SSD seperti X25-E atau seri Vertex Ex atau berbagai penawaran tingkat perusahaan. Tapi saya juga tertarik dengan tips yang mungkin menguntungkan pengaturan SSD MLC. Saya pikir itu area yang menarik. Salah satu klien klien saya memiliki anggaran kecil dan set data yang tumbuh sangat besar dan mereka menghadapi penulisan ulang lengkap hampir seratus pertanyaan untuk mempertahankan tingkat kinerja yang layak. Namun, saya curiga bahwa kurang dari $ 500 RAM dan ruang SSD mungkin memberi mereka keuntungan kinerja yang lebih besar daripada ribuan (mungkin puluhan ribu) dolar waktu pengembang.
sumber
Anda tidak dapat mengubah karakteristik SQL Server IO. Unit dasar untuk akses disk, untuk file data, adalah halaman 8Kb. Itu akan menulis mereka sebagian besar selama pos pemeriksaan, tetapi juga akan malas menulis mereka ketika bisa.
SQL tidak menunggu menulis ke disk data untuk menyelesaikan sebelum kembali, hanya menulis log yang harus diselesaikan. Jika Anda dapat menyimpan hanya satu log basis data pada disk maka itu akan berurutan menulis dan akan baik-baik saja pada hard disk normal.
Kinerja hit dari sudut pandang SQL adalah ketika harus membaca disk. Jika Anda dapat memberikan lebih banyak memori maka SQL akan menyimpan lebih banyak halaman data dalam memori, yang lebih cepat daripada segala jenis disk, SSD atau lainnya. Jelas Anda juga dapat mengurangi jumlah disk yang dibaca dengan membuat indeks yang sesuai. Saya berharap SSD juga akan membantu dengan pembacaan ini karena mereka cenderung acak dan menunggu drive drive bergerak.
Saya tidak tahu ukuran basis data apa yang kita bicarakan di sini, tetapi apakah Anda mungkin ingin melihat HyperOS. Mereka membuat sata disk yang sebenarnya hanya memuat DDR2 ram stick, dengan SSD atau 2,5 inci disk sebagai cadangan. Pola akses server tidak akan menjadi masalah saat itu. Saya tidak akan menaruh log pada hal seperti ini sekalipun. Log adalah apa yang membuat data Anda tetap konsisten, mereka harus menggunakan media yang andal dan meskipun memiliki cadangan SSD dan baterai dan server mungkin memiliki UPS dll, saya masih akan merasa tidak mudah tentang tidak memiliki log saya pada hard disk nyata dalam beberapa jenis RAID array kegagalan toleran.
sumber
Operasi acak kecil adalah musuh disk tradisional, karena latensi head seek ... SSD hebat dalam menangani hal ini.
Dengan operasi sekuensial yang panjang, disk standar berkinerja cukup baik, sehingga tidak akan ada gunanya menggunakan SSD (dari sudut pandang kinerja, tentu saja).
sumber
Tidak perlu menunjuk di sini untuk menambahkan ke utas komentar, tetapi jika Anda mengatur ukuran halaman DB / multi read count untuk apa pun di SSD ke beberapa ukuran halaman SSD ini seharusnya tidak menjadi masalah.
Saya belum bekerja di SQL Server dalam waktu yang lama jadi saya tidak yakin apakah opsi ini tersedia di sana. Saya telah melakukan Oracle dan DB2 selama beberapa tahun terakhir dan ini akan menyelesaikan masalah Anda karena DB akan disesuaikan dengan karakteristik disk.
sumber
Saya akan merekomendasikan menyelaraskan partisi tempat file database disimpan.
Saya juga akan merekomendasikan memutuskan apa yang terjadi pada RAID 0 untuk perf (ldf dan TempDB), dan tempatkan data penting pada RAID 1 (mdf).
Ketiga, Anda harus memperbarui firmware drive serta firmware / driver pengontrol SATA. Dengan melakukannya, Anda memberi perusahaan perangkat keras dan pengembangnya peluang untuk mengoptimalkan kinerja bagi Anda.
sumber