Saya mengalami masalah dengan database.
Saya dapat menjalankan kueri dasar, meskipun jauh lebih lambat dari biasanya.
Ketika saya mencoba untuk melihat hierarki pohon untuk tabel, tampilan, atau prosedur di SSMS Object Explorer, saya dapatkan
lock request time out period exceeded
.Laporan SSR saya yang berjalan pada objek dalam database ini tidak lagi selesai.
Pekerjaan yang terkait dengan prosedur yang tersimpan di database ini juga tidak berjalan.
Saya mencoba menggunakan sp_who2
untuk menemukan dan membunuh semua koneksi pada database, namun ini belum menyelesaikan masalah.
Apa yang terjadi disini? Bagaimana saya bisa menyelesaikan ini?
sql-server
sql-server-2008
Lloyd Banks
sumber
sumber
Jawaban:
Itu disebabkan oleh kemunduran transaksi yang terjadi terus-menerus. Harus akhirnya me-restart cluster server saya
sumber
Tidak termasuk pertimbangan Harware, mungkin Anda perlu menjalankan skrip untuk memeriksa aktivitas apa saja yang menahan Sesi SQL, salah satu skenario umum adalah tidak menggunakan
Implicit transactions Option
dalam SQL Server Management Studio.sumber
locking request time out period exceed
saya akan mengatakan berlariimplicit transaction option
akan memberikan petunjuk yang lebih baik tentang penyebabnya.Saya mendapatkan masalah ini ketika saya memulai transaksi eksplisit di mana saya membuat tabel di tempdb dari skrip yang berjalan di database lain (bukan tempdb). Ketika saya melakukan transaksi, komit tampaknya tidak melepaskan kunci di atas meja yang saya buat di tempdb.
Berkat halaman ini , saya melakukan
USE
tempdb dan mengeksekusiDBCC OPENTRAN
dan mendapatkan SPID dari koneksi ke tempdb yang menyebabkan kunci. Lalu akuKILL <SPID number>
akan membunuhnya.Tidak terlalu anggun, dan saya kehilangan semua informasi di tabel yang saya buat di tempdb, tapi itu tidak masalah bagi saya.
sumber
Ada begitu banyak hal yang bisa saya tawarkan adalah beberapa pertanyaan untuk membantu membimbing Anda menuju sebuah jawaban.
Apakah DB pada server didedikasikan untuk hanya menjalankan SQL Server? Jika tidak, proses lain mungkin mengganggu dengan mencuri waktu prosesor yang berharga.
Apakah server DB pada dasarnya kehabisan memori? SQL Server akan berusaha untuk mengalokasikan setiap byte tunggal yang bisa, tetapi jika itu pada kapasitas dan permintaan Anda memerlukan lebih banyak data untuk dimuat maka harus mundur untuk menggunakan memori virtual, yang secara radikal meningkatkan jumlah waktu bahkan pertanyaan sederhana mungkin diperlukan.
Apakah bandwidth jaringan server DB menjadi kecil untuk menangani transfer data tepat waktu?
Pada akhirnya, sepertinya mesin yang Anda hosting SQL Server di bawah ukuran untuk apa yang Anda coba lakukan. Sangat mungkin bahwa Anda akhirnya mencapai batas perangkat keras di mana kinerja menurun secara radikal. Jika ini masalahnya (pertanyaan di atas akan membantu Anda menentukan hal itu) maka Anda ingin memindahkan DB ke server yang berukuran tepat untuk jumlah data (dan kueri) yang Anda coba proses.
Ini bisa berarti menggunakan prosesor yang lebih cepat, drive yang lebih cepat, atau hanya menginstal lebih banyak RAM.
sumber
"Ketika saya mencoba untuk melihat hierarki pohon untuk tabel, tampilan, atau prosedur di SSMS Object Explorer, saya mendapatkan batas waktu permintaan batas waktu terlampaui."
Saya memiliki masalah yang persis sama. Saya pergi ke jendela eksekusi permintaan dan;
ROLLBACK
pernyataan diketik dan dieksekusi .Sepertinya beberapa rangkaian pernyataan yang saya jalankan sebelum itu, mengadakan transaksi terbuka. Secara khusus, karena beberapa dari mereka di mana pernyataan DDL. Setelah saya mengeluarkan rollback, hierarki objek mulai berfungsi.
sumber
Seperti yang sudah ditunjukkan oleh banyak orang, biasanya ada transaksi yang tahan lama, sebagian besar karena saya ketinggalan menggunakan SET TRANSAKSI IMPLICIT ON, yang seharusnya tidak digunakan sama sekali. Untuk mengetahui alasannya, periksa artikel berwawasan Brent Ozar
Bagaimanapun, Anda bisa mendapatkan daftar transaksi tertunda yang bertahan lama menggunakan kueri berikut.
https://www.brentozar.com/archive/2018/02/set-implicit_transactions-one-hell-bad-idea/
sumber