Ini adalah duplikat dari pertanyaan yang saya ajukan di stackoverflow , tetapi saya disarankan, bahwa seseorang di sini dapat memiliki ide yang lebih baik tentang apa yang terjadi.
Saya memiliki masalah sporadis, ketika memutakhirkan SQL Server dalam mode pengguna tunggal, menggunakan .NET SqlConnection, beberapa aplikasi lain entah bagaimana masuk ke dalam database, sementara kode SQL sedang dieksekusi, dan memulai proses saya. SqlConnection tidak ditutup atau dibuang dengan cara apa pun. Tetapi beberapa aplikasi lain entah bagaimana akhirnya terhubung ke database dan itu membuat koneksi saya keluar.
Ketika saya menjalankan sp_who, saya bisa melihat bahwa proses yang mengendalikan database adalah Command = "TASK MANAGER".
Adakah yang bisa memberi tahu saya apa proses ini, apa tujuannya, dan bagaimana di dunia ini bisa masuk ke dalam database, yang dalam mode single-user, dan ada koneksi aktif?
sumber
Jawaban:
Mengalami masalah yang sama hari ini, Jika Anda belum menempatkan AUTO_UPDATE_STATISTICS ASYNC OFF, Anda tidak akan dapat memasukkan basis data, Anda dapat menyelesaikannya dengan meletakkan basis data offline. Penting untuk diketahui adalah bahwa Anda perlu mengatur prioritas deadlock Anda ke tinggi, jika tidak, Anda akan menemui jalan buntu dari perintah. Gunakan perintah berikut untuk keluar dari mode pengguna TUNGGAL
Diikuti oleh
Diikuti oleh
sumber
SET MULTIUSER WITH ROLLBACK IMMEDIATE
bekerja dengan sendirinya ketikaSET DEADLOCK_PRIORITY HIGH
dilakukan pertama kaliSaya pikir akhirnya misteri terselesaikan :
sumber
Hentikan jejak acara yang diperpanjang "system_health". Itu akan terdaftar di bawah
SQL Server Management Studio
-> [ServerName]
-> Management
-> Extended Events
-> Right-Click on 'System_health'
-> Hit Stop Session
Setelah pemblokir diperbaiki, mulai ulang sesi.
sumber
Anda harus menonaktifkan SQL Agent 'sebelum' memulai mode penggunaan tunggal. Sebagai agen accout akan mengambil akses pengguna tunggal. Ingat pengguna tunggal bukan Anda pengguna pertama / proses untuk terhubung.
sumber