Adakah di antara Anda yang pernah mengalami yang berikut ini, dan apakah Anda sudah menemukan solusinya:
Sebagian besar back-end situs web kami adalah MS SQL Server 2005. Setiap minggu atau dua minggu situs mulai berjalan lebih lambat - dan saya melihat pertanyaan membutuhkan waktu lebih lama dan lebih lama untuk diselesaikan dalam SQL. Saya memiliki pertanyaan yang ingin saya gunakan:
USE master
select text,wait_time,blocking_session_id AS "Block",
percent_complete, * from sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by start_time asc
Yang cukup berguna ... ini memberikan snapshot dari semua yang berjalan pada saat itu terhadap server SQL Anda. Yang menyenangkan adalah meskipun CPU Anda dipatok 100% untuk beberapa alasan dan Activity Monitor menolak memuat (saya yakin sebagian dari Anda sudah ada di sana) kueri ini masih kembali dan Anda dapat melihat kueri apa yang membunuh DB Anda.
Ketika saya menjalankan ini, atau Monitor Aktivitas pada saat SQL mulai melambat saya tidak melihat pertanyaan khusus yang menyebabkan masalah - mereka SEMUA berjalan lebih lambat di seluruh papan. Jika saya memulai kembali Layanan MS SQL maka semuanya baik-baik saja, itu mempercepat - selama satu atau dua minggu sampai terjadi lagi.
Tidak ada yang dapat saya pikirkan telah berubah, tetapi ini baru dimulai beberapa bulan yang lalu ... Gagasan?
--Ditambahkan
Harap perhatikan bahwa ketika pelambatan basis data ini terjadi, tidak masalah jika kami mendapatkan 100 ribu halaman yang dilihat satu jam (waktu yang sibuk) atau 10 ribu halaman yang dilihat satu jam (waktu lambat), semua pertanyaan membutuhkan waktu lebih lama untuk diselesaikan daripada biasanya. Server tidak benar-benar di bawah tekanan - CPU tidak tinggi, penggunaan disk tampaknya tidak di luar kendali ... rasanya seperti indeks fragmentasi atau semacamnya tetapi itu tampaknya tidak menjadi kasus.
Sejauh menempelkan hasil kueri yang saya tempelkan di atas, saya benar-benar tidak bisa melakukannya. Kueri di atas mencantumkan login pengguna yang melakukan tugas, seluruh permintaan, dll. Dan saya benar-benar tidak ingin membagikan nama-nama database, tabel, kolom, dan info masuk online saya:) ... I dapat memberi tahu Anda bahwa kueri yang berjalan pada saat itu adalah normal, kueri standar untuk situs kami yang berjalan sepanjang waktu, tidak ada yang keluar dari norma.
- Raja 24
Sudah sekitar dua minggu sejak reboot terakhir. Saya membuat beberapa perubahan: Saya menemukan beberapa pertanyaan di mana kami banyak menggunakan tabel temp yang sama sekali tidak perlu dan membuat pengembang kami mengubah cara mereka melakukannya. Saya menyesuaikan ukuran beberapa database yang terus-menerus (perlahan tapi pasti) tumbuh menjadi ukuran yang cerdas untuk pertumbuhan mereka. Saya menyesuaikan pengaturan autogrowth untuk semuanya juga agar lebih cerdas (mereka SEMUA diatur ke pertumbuhan 1MB). Terakhir saya membersihkan MSDB sedikit. Kami melakukan pengiriman log dan benar-benar tidak perlu menyimpan poin cadangan bertahun-tahun, saya telah menulis beberapa skrip yang membuatnya hanya beberapa bulan. Saya akan terus memperbarui utas ini, karena masih terlalu dini untuk mengetahui apakah masalahnya sudah terpecahkan.