SQL Server 2016 CPU idle tinggi dan permintaan sangat lambat

10

Saya memiliki ~ 10 hari instalasi lama WinServer2012R2 dan SQL Server Express 2016 untuk pengujian. Saya satu-satunya pengguna di mesin ini. Database dengan .bak dari SQL Server 2005 dari ~ 250MB dipulihkan tanpa masalah. Setelah reboot mesin proses "SQL Server NT - 64 Bit" menggunakan CPU 0%.

Setelah beberapa menit atau beberapa jam dan beberapa pertanyaan sederhana (tidak ada pembaruan / sisipan!) Dari penggunaan SSMS CPU "SQL Server NT - 64 Bit" tiba-tiba melonjak hingga ~ 15% dan tetap di sana, bahkan ketika idle. Dari titik itu pada pertanyaan yang biasanya memakan waktu kurang dari satu detik tiba-tiba membutuhkan waktu 2 menit. Selama permintaan aktual, penggunaan CPU TIDAK bertambah. Server menjadi hampir tidak dapat digunakan dalam kondisi ini.

Hanya menghubungkan SQL Server Profiler kemudian mengambil> 30sec. Di samping pertanyaan saya sendiri, saya hanya melihat sangat sedikit pertanyaan dari SQLServerCEIP / SQLTELEMETRY, ~ 3 per menit.

Restart SQL-Server tidak menyelesaikannya. Penggunaan CPU melompat kembali ke ~ 15%. Bahkan setelah jam SQL-Server tidak pulih. Hanya me-reboot seluruh mesin yang menyelesaikan masalah.

Karena ini adalah instalasi "out of the box", hanya ada database kecil, hampir tidak ada pertanyaan, hanya saya sebagai pengguna dan mungkin tidak ada kunci, banyak artikel tentang masalah kinerja SQL-Server biasa berbicara tentang banyak hal yang tidak benar-benar berlaku di sini. Tampaknya SQL-Server secara eksklusif ingin berkonsentrasi pada beberapa tugas internal.

Ini adalah mesin virtual dengan RAM 2GB dan dual Xeon pada 2GHz. Saya juga punya VS2016 dan sangat cepat. Tidak ada antivirus, bahkan Windows Defender. Sudah terlambat di sini. Saya akan mencoba sp_whoisactive besok. Saya benar-benar bertanya-tanya APA yang dilakukan SQL-Server di sana ... Di mesin sebelumnya dengan 1 GB DB yang sama berjalan di bawah SQLServer2005 selama 10 tahun tanpa masalah ...

Saya bukan ahli SQL-Profiler. Di mana saya harus mulai mencari?

Andreas Steidle
sumber
Bisa jadi pemasangan yang buruk. Pertimbangkan instalasi baru OS dan SQL. Semua paket layanan. Anda dapat mengejar hal-hal seperti ini selamanya. Jika masalahnya masih ada, maka Anda dapat mengabaikan instalasi.
paparazzo
7
Apakah Anda memiliki antivirus yang diinstal? Saya akan menambahkan pengecualian untuk executable SQL Server, serta file MDF, NDF, dan LDF.
Randolph West
1
Apakah Anda melihat pengaturan hemat daya juga?
Randolph West
Saya ingat perilaku serupa 2005 jika opsi database auto_update_statistics_asyncdihidupkan.
Roger Wolf
Cobalah untuk menjadikan basis data offline dan periksa penggunaan cpu. Jika penggunaan CPU tidak turun maka masalah mesin database server sql nya.
Muhammad Yousaf Sulahria

Jawaban:

3

Karena utilisasi CPU Anda rendah (dan Anda memiliki set CPU yang hebat), saya akan memeriksa tekanan memori terlebih dahulu. Dengan SQL Express 2016 Anda terbatas pada memori 1410 MB, tetapi VM Anda hanya memiliki 2GB. Berikan VM Anda 1GB lebih banyak memori dan lihat apakah itu membantu. Anda juga dapat memeriksa log SQL Server Anda jika paging memori ke file.

Jika itu tidak berhasil, coba atur pengaturan basis data LEGACY_CARDINALITY_ESTIMATION ke ON. Referensi: Menggunakan Tingkat Kompatibilitas DB 130 dengan CE Lama di SQL Server 2016 . Kami mengalami ini dengan beberapa peningkatan kami; hasil akan bervariasi dengan setiap basis data.

fx1974
sumber
Sementara itu saya menemukan bahwa memulai / menghentikan perangkat lunak lain dengan penggunaan memori yang berlebihan (seperti Visual Studio) membuat masalah menjadi lebih buruk dengan cara yang dapat direproduksi. Jadi saya akan mengkonfirmasi ini masalah memori - SQL-Server mulai paging ketika terlalu banyak.
Andreas Steidle