Latar Belakang
Saya sedang dalam proses migrasi database 160GB dari MSSQL 2008 (standar) pada server Win 2008 dengan 48 GB RAM ke server baru yang menjalankan MSSQL 2012 (edisi web 64-bit) pada Win 2012 dengan 64 GB RAM. Server lama hidup dan di bawah beban; server baru tidak dalam produksi. Server baru memiliki 8 file tempdb (masing-masing 4GB).
Masalah
Dalam pengujian pada server baru saya melihat langkah-langkah dalam berbagai pertanyaan menyebabkan peringatan yang menyebutkan "operator menggunakan tempdb untuk menumpahkan data selama eksekusi". Saya dapat menghindari masalah dengan menulis ulang beberapa pertanyaan, tetapi ini tidak benar-benar mengatasi masalah ini. Kueri yang sama di server lama tidak menyebabkan tumpahan. Saya telah membaca bahwa tumpahan terjadi ketika MSSQL tidak dapat menyelesaikan operasi dalam memori dan harus menumpahkan / halaman ke tempdb. Haruskah saya khawatir tentang tumpahan?
Contohnya
Saya telah menjalankan sp_updatestats pada database, jadi statistiknya harus terkini, tetapi Anda akan perhatikan ada beberapa perbedaan antara jumlah baris yang diperkirakan dan aktual.
Kekhawatiran memori
Saya telah menetapkan pengaturan memori maks untuk MSSQL dari 58 dari 64GB. Saat ini MSSQL telah mengkonsumsi sekitar 35gb memori ini, tetapi hanya memiliki set kerja 682mb. Server lama (meskipun dalam produksi, menangani beban) memiliki 44GB memori yang dikomit ke MSSQL yang 43.5gb berada di set kerjanya.
Saya tidak tahu apakah tumpahan mungkin terkait dengan pengaturan memori - ada yang punya ide? MSSQL saat ini memiliki banyak RAM, jadi mengapa itu menumpahkan ke tempdb untuk beberapa jenis dan hash cocok?