Microsoft mendistribusikan perbaikan Microsoft SQL Server 2012 sebagai satu file yang dapat diunduh. Karena perbaikan bersifat kumulatif, setiap Edaran baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan edaran perbaikan 2012 SQL Server sebelumnya.
Gejala
Pertimbangkan skenario berikut:
-
Anda membuat satu atau beberapa proyek kualitas data di klien kualitas data di Microsoft SQL Server 2012.
-
Anda menginstal pembaruan kumulatif 1 untuk SQL Server 2012 (SQL Server 2012 CU1), lalu Anda menjalankan file DQSInstaller. exe untuk memutakhirkan Katalog Layanan kualitas data (DQS) dan untuk menambahkan objek baru.
-
Anda mencoba menghapus salah satu dari proyek kualitas data yang dibuat dengan menggunakan klien kualitas data.
Dalam skenario ini, klien kualitas data berhenti merespons, dan mesin database SQL Server memasukkan pengulangan tak terbatas. Selain itu, proses sqlservr. exe mengalami penggunaan CPU tinggi. Catatan
-
Untuk memulihkan dari masalah ini, mulai ulang klien kualitas data dan DQS.
-
Masalah ini hanya terjadi jika proyek kualitas data dibuat sebelum Anda menginstal SQL Server 2012 CU1.
Penyebab
Masalah ini terjadi karena pengulangan tak terbatas dalam prosedur sistem disimpan yang disebabkan oleh pembaruan penghitung berulang dengan tidak benar.Catatan Masalah ini terjadi karena kemunduran di SQL Server 2012 CU1.
Pemecahan Masalah
Informasi pembaruan kumulatif
Informasi paket layanan untuk SQL Server 2012
Untuk mengatasi masalah ini, Dapatkan paket layanan terbaru untuk SQL Server 2012. Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
2755533 Cara mendapatkan paket layanan terbaru untuk SQL Server 2012
SQL Server 2012
Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 2 untuk SQL Server 2012. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
2703275 Paket pembaruan kumulatif 2 untuk SQL Server 2012Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan edaran perbaikan SQL Server sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2692828 Build 2012 SQL Server yang dirilis setelah SQL Server 2012 dirilis
Penyelesaian Masalah
Untuk mengatasi masalah ini, gunakan salah satu metode berikut ini.Metode 1Untuk menambahkan prosedur dummy yang mengaktifkan pengulangan prosedur yang tidak terbatas untuk melanjutkan lalu keluar dengan benar, ikuti langkah-langkah berikut:
-
Jalankan kueri berikut ini untuk mengidentifikasi nama skema untuk proyek yang terpengaruh yang ingin Anda hapus:
SELECT 'KnowledgeManagement'+CAST(ID AS NVARCHAR) AS SchemaName, Name FROM DQS_MAIN.dbo.A_KNOWLEDGEBASE WHERE TYPE=2
-
Gunakan nilai Schemaname yang dikembalikan, lalu jalankan pernyataan yang menyerupai berikut ini di SQL Server Management Studio untuk memasok nama skema yang cocok dan id proyek kualitas data. Prosedur Dummy baru akan dibuat untuk skema dan proyek kualitas data terkait. Oleh karena itu, pengulangan tak terbatas berlanjut dengan benar.
USE DQS_PROJECTSGOCREATE PROCEDURE DQProject<ID>.NewIndexParseTrigramsFromLexiconAS BEGINPRINT 'THIS IS A DUMMY PROCEDURE TO MAKE DELETE WORK for Microsoft KB Article 2705571';END
Catatan <ID> menunjukkan ID internal dari proyek kualitas data yang sedang dihapus.
-
Verifikasi bahwa proyek kualitas data dihapus dari klien kualitas data seperti yang diharapkan.
Metode 2Jika Anda harus membunuh prosedur pengulangan dengan cepat untuk menghemat sumber daya CPU, jalankan pernyataan berikut ini untuk mengidentifikasi sesi yang benar. Namun, tindakan pembunuhan yang dilakukan tidak menghapus proyek kualitas data dengan bersih. Pernyataan Transact-SQL berikut ini membantu mengidentifikasi dan membunuh sesi yang benar. Jika lebih dari satu sesi dari klien kualitas data berjalan, Anda mungkin harus menjalankan pernyataan beberapa kali:
DECLARE @session smallint, @text nvarchar(2000), @killcommand nvarchar(200)SELECT TOP 1 @session=s.session_id, @text=st.textFROM sys.dm_exec_sessions sFULL OUTER JOIN sys.dm_exec_requests r ON s.session_id=r.session_idCROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS stWHERE program_name like 'DQ Services Client: Client Id = %, KB Id = %, Proxy = KnowledgebaseManagementEntryPointClient'AND s.status='running';SELECT 'Killing this DQS session:', @session SessionID, @text QueryText;SET @killcommand=N'Kill '+ cast(@session as nvarchar)+';'EXEC sp_executesql @killcommand;
Catatan Jika Anda menggunakan metode 2 untuk membunuh koneksi DQS, Anda mungkin menerima pesan kesalahan berikut ini di klien kualitas data:
Layanan kualitas data SQL Server--------------------------------------------------------------------------------<MessageId>: applicationunhandledexceptionan tidak tertangani pengecualian telah terjadi. Untuk detail selengkapnya, lihat log klien kualitas layanan data.--------------------------------------------------------------------------------System. data. SqlClient. SqlException (0x80131904): kesalahan parah terjadi pada perintah saat ini. Hasilnya, jika ada, harus dibuang.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Untuk informasi selengkapnya tentang cara memutakhirkan DQS, masuk ke situs web Microsoft TechNet berikut: