Kami memiliki database OLTP 40GB aktif di SQL Server 2014 SP1. Kueri ditemukan lambat dengan IO_Completion menunggu, Panjang Antrian Disk naik menjadi 900, dan SQL Server berhenti merespons. Apa yang kami coba:
Mulai ulang contoh dan dengan dalam satu menit itu mulai berlaku dengan cara yang sama.
Setelah restart kedua, kami mengubah ukuran awal setiap tempfb datafile (ada 16 file data yang dibuat) dan mulai berfungsi dengan benar.
Catatan: Kami menggunakan variabel tabel untuk set hasil menengah. Set hasil ini sangat kecil.
Itu terjadi dua kali dalam sebulan. Setiap kali saya menambahkan sedikit ruang secara manual ke file data, maka itu mulai bekerja secara normal. Yang lebih menarik adalah bahwa pengaturan yang sama (perangkat keras yang sama, pengaturan folder dan file yang sama, beban kerja yang sama) yang kita miliki di SQL Server 2008 R2 dan dan SQL Server 2012 bekerja dengan baik.
Mohon bantu kami untuk menemukan solusi permanen.
Ukuran awal semua file data adalah 1000MB yang sama, saat ini masing-masing 1500MB. Semuanya identik. Autogrowth masing-masing 100MB. Sebelum ini kami menghadapi pertentangan halaman PFS dan GAM dan kami bertambah menjadi 16 dan masalah teratasi. Kedua tanda jejak 1117 & 1118 diaktifkan. 24 core pada 2 NUMA node. Semua datafile berada pada volume yang sama. Disk sederhana, tidak ada SAN.
Mesin virtual ada di mesin fisik. Kueri dengan Tabel Variabel dan kueri dengan Hash Joins paling umum menghasilkan menunggu IO_Completion.
Jawaban terperinci oleh wBob mendorong kami untuk mencari lebih detail. Bagaimana kami melewatkannya sebelumnya:
Autogrow file 'templog' dalam database 'tempdb' dibatalkan oleh pengguna atau habis waktu setelah 7704 milidetik. Gunakan ALTER DATABASE untuk menetapkan nilai FILEGROWTH yang lebih kecil untuk file ini atau untuk secara eksplisit mengatur ukuran file baru.
Ini kami temukan di log ketika jenis masalah ini terjadi. Kami sedang memindahkan TempDB untuk memisahkan drive cepat.
sumber