Saya mendapatkan kesalahan berikut saat mencoba membuat indeks berkerumun
Pernyataan itu telah dihentikan.
Msg 596, Level 21,
Status 1, Baris 0 Tidak dapat melanjutkan eksekusi karena sesi ini dalam status kill.Msg 0, Level 20, Negara 0, Baris 0
Terjadi kesalahan parah pada perintah saat ini. Hasilnya, jika ada, harus dibuang.
Indeksnya adalah:
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE CLUSTERED INDEX IX_CO_DES_INPUT
ON dbo.CO_DES_INPUT(DESIGN_ID, PRODUCT_INPUT_NUM, INPUT_NAME)
WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
ALTER TABLE dbo.CO_DES_INPUT
SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
Saya menggunakan Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) Edisi Standar (64-bit) pada Windows NT 6.3 (Build 9600:)
aku harus lari
DBCC CheckDB ('concept-test') WITH NO_INFOMSGS, ALL_ERRORMSGS
dan tidak menemukan masalah
Saya takut database saya rusak karena saya mendapatkan kesalahan ini. Bagaimana cara memperbaiki masalah saya dan meletakkan indeks ini di atas meja?
sql-server
sql-server-2012
pengguna2904235
sumber
sumber
Jawaban:
Just a pointer re: SQL Server 2017 (di mana saya memukul kesalahan ini) dan beberapa versi 2016 berpotensi menghemat waktu lain:
Sebelum SQL Server 2017 CU8 (juga 2016 SP1 CU9 dan 2016 SP2 CU1), ada masalah di mana tabel dipartisi dengan statistik inkremental akan menghasilkan kesalahan ini jika operasi DML menyebabkan pembaruan statistik otomatis.
Halaman KB minimal ada di sini:
https://support.microsoft.com/en-us/help/4163478/fix-access-violation-when-incremental-statistics-automatically-updated
Menginstal CU lebih baru dari yang tercantum di atas memperbaiki masalah.
sumber
Ini bisa disebabkan oleh Korupsi Indeks,
Cara terbaik untuk mengelola ini adalah Jatuhkan Indeks Lama yang rusak.
Dan daripada Menjalankan kueri dalam pertanyaan, seharusnya berfungsi dengan baik jika semua catatan unik. di kolom yang diberikan.
sumber
Dalam database yang dikonfigurasi untuk Selalu Pada Grup yang Tersedia, Anda juga dapat menemukan perilaku ini jika Grup Ketersediaan dalam mode SYNCHRONOUS dan sekunder telah offline atau ditangguhkan. Ini adalah efek samping yang dialami oleh server aplikasi. Terima kasih,
sumber
Sesuatu yang tanpa disadari saya temukan: Ketika Anda menonaktifkan / membangun kembali indeks pada tampilan yang diindeks, Anda akan mendapatkan kesalahan yang sama ini jika Anda mencoba untuk membangun kembali satu bijih lebih banyak dari indeks yang tidak berkerumun sebelum membangun clustered atau menggunakan REBUILD ALL.
sumber
Saya selalu mendapatkan kesalahan ini ketika saya memiliki kueri yang sedang berjalan, menggunakan Always On AG Listener, menggunakan salah satu database AG dan ada failover:
Penyedia Data SqlClient. Net: Msg 596, Level 21, State 1, Line 0 Tidak dapat melanjutkan eksekusi karena sesi ini dalam status kill. Penyedia Data SqlClient. Bersih: Msg 0, Level 20, Negara 0, Baris 0 Terjadi kesalahan parah pada perintah saat ini. Hasilnya, jika ada, harus dibuang.
Sangat mudah untuk mereproduksi! Tentu saja, mungkin ada alasan lain tetapi ini adalah satu contoh khusus saya mendapatkan jenis kesalahan ini ...
sumber
Saya dapat mereproduksi masalah ini dalam program C # yang cukup kecil yang menggunakan Koneksi Asynchronous, tetapi saya tidak yakin 100% mengapa. Ini adalah program repro saya kalau-kalau ada yang mau mencobanya - Saya curiga ada beberapa hal yang harus disejajarkan dengan sempurna agar hal ini terjadi:
sumber