Saya telah mendengar bahwa menyimpan indeks pada filegroup dan drive yang berbeda meningkatkan kinerja dalam database karena drive tidak harus bolak-balik antara indeks dan data yang dirujuk oleh indeks. Saya juga pernah mendengar bahwa ini adalah mitos.
Kapan sebaiknya menyimpan indeks yang tidak tercakup pada grup dan drive terpisah? Apa bukti perfmon / profiler yang membuat saya sampai pada kesimpulan itu? Apakah perangkat keras berperan dalam keputusan (apakah RAID / SAN digunakan melalui satu drive)?
sumber
Memang benar bahwa menyebarkan I / O simultan Anda di antara drive yang berbeda akan meningkatkan kinerja - itu bukan mitos. Itu adalah mitos bahwa melakukannya dua kali akan meningkatkan kinerja lagi.
Jika Anda SAMA , maka memecah array Anda menjadi dua partisi dan meletakkan indeks pada satu dan tabel pada yang lain adalah buang-buang waktu.
sumber
Memisahkan Indeks dari data ke dalam kelompok-kelompok terpisah = peningkatan kinerja sangat dapat diperdebatkan. Peningkatan kinerja "mungkin" terjadi jika Anda memiliki perangkat keras yang mendasarinya untuk mendukungnya, tetapi hanya dengan fakta bahwa memisahkannya ke berbagai grup grup tidak memberi Anda peningkatan kinerja. Dan juga TIDAK mudah untuk mengukur peningkatan perf karena ini.
Ref: http://weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBA-Monkey.aspx
Anda harus mengajukan pertanyaan terlebih dahulu. Mengapa Anda perlu melakukan ini?
Saya melihat tugas ini untuk mendukung kebutuhan # 5 dalam daftar di atas dan sepertinya proposal yang bagus bagi saya walaupun kami belum menindaklanjutinya.
Perhatikan bahwa keputusan ini BUKAN mudah dan Anda perlu mencari tahu apa yang ingin Anda lakukan dan memastikan Anda memiliki perangkat keras untuk didukung. Jangan melakukan perubahan seperti ini kecuali jika Anda telah menguji dengan baik dan Anda melihat peningkatan yang signifikan dalam kinerja jika tidak, Anda mungkin juga membuang ide ini. Ini TIDAK layak jika Anda mengharapkan peningkatan perf dengan hanya memisahkan indeks ke filegroup terpisah.
sumber
Saya akan menceritakan pengalaman pribadi saya tentang item ini. Indeks non-clustered harus disimpan pada filegroup terpisah ketika disk drive saat ini tidak cukup besar untuk ruang yang dibutuhkan :-). Anda dapat menertawakannya .. tetapi itu terjadi.
Jadi perbaikan darurat bagi kami, ketika kami akan tetap tanpa ruang kosong pada drive data, adalah membuat skrip yang bagus untuk membuat ulang semua indeks yang tidak berkerumun online di sebuah filegroup baru pada drive dengan ruang kosong. Orang akan berpikir itu mudah dan cepat untuk membeli penyimpanan baru .. tetapi tidak seperti itu, sungguh.
Mengenai kinerja, kami tidak melihat sesuatu yang luar biasa setelah beraktivitas. Tapi ini adalah kotak penyimpanan SAN besar tempat semuanya disatukan :-).
sumber
Secara umum; memisahkan data dan indeks ke disk terpisah yang berkinerja sama dapat meningkatkan kinerja untuk operasi penulisan substansial ke tabel itu atau operasi baca besar yang memanfaatkan indeks itu. Metodologi serupa dengan beberapa operasi I / O lainnya, seperti tabel dipartisi yang tersebar di beberapa disk fisik.
Namun itu juga sangat tergantung pada penyimpanan . Sebagai contoh; jika Anda memiliki server dengan ioDrive Fushion yang bagus (atau yang serupa) dan juga memiliki disk pemintalan individual. Mungkin lebih bermanfaat untuk menyimpan semuanya di ioDrive (kecuali ruang terbatas). Ada juga hal-hal lain yang perlu dipertimbangkan - konfigurasi RAID, konfigurasi penyimpanan jaringan.
Lakukan beberapa penandaan bangku pada server pengujian dengan perangkat keras yang sama atau (hanya jika server sekunder bukan pilihan) selama jam non-puncak dengan data sementara. Link DBA-Monkey oleh Sankar di atas adalah makanan yang bagus untuk dipikirkan.
sumber