আমার কাছে একটি স্থানিক সূচক রয়েছে যার জন্য DBCC CHECKDB
দুর্নীতি রিপোর্ট করে:
DBCC CHECKDB(MyDB)
WITH EXTENDED_LOGICAL_CHECKS, DATA_PURITY, NO_INFOMSGS, ALL_ERRORMSGS, TABLERESULTS
স্থানিক সূচক, এক্সএমএল সূচক বা সূচিযুক্ত ভিউ 'sys.extended_index_xxx_384000' (অবজেক্ট আইডি এক্সএক্সএক্সএক্স) ভিউ সংজ্ঞাটি তৈরি করে এমন সমস্ত সারি ধারণ করে না। এটি অগত্যা এই ডেটাবেজে ডেটা সহ কোনও সততা ইস্যুর প্রতিনিধিত্ব করে না।
স্পেসিয়াল ইনডেক্স, এক্সএমএল ইনডেক্স বা ইনডেক্সড ভিউ 'sys.extended_index_xxx_384000' (অবজেক্ট আইডি এক্সএক্সএক্সএক্স) -তে সারি রয়েছে যা দর্শন সংজ্ঞা দ্বারা উত্পাদিত হয়নি। এটি অগত্যা এই ডেটাবেজে ডেটা সহ কোনও সততা ইস্যুর প্রতিনিধিত্ব করে না।
CHECKDB টেবিলের 'sys.extended_index_xxx_384000' (অবজেক্ট আইডি এক্সএক্সএক্সএক্স) -তে 0 বরাদ্দ ত্রুটি এবং 2 ধারাবাহিক ত্রুটিগুলি খুঁজে পেয়েছে।
মেরামত স্তর হয় repair_rebuild
।
সূচকে বাদ দেওয়া এবং পুনরুদ্ধার করা এই দুর্নীতির প্রতিবেদনগুলিকে সরিয়ে দেয় না। ছাড়া EXTENDED_LOGICAL_CHECKS
কিন্তু DATA_PURITY
ত্রুটি রিপোর্ট করা হয় না।
এছাড়াও, CHECKTABLE
এই টেবিলটির জন্য 45 মিনিট সময় লাগে যদিও এর সিআই 30 মিমি আকারের এবং প্রায় 30k সারি রয়েছে। এই টেবিলের সমস্ত ডেটা পয়েন্ট geography
ডেটা।
এই আচরণটি কি কোনও পরিস্থিতিতে প্রত্যাশিত? এটি বলে যে "এটি অগত্যা কোনও সততা ইস্যুর প্রতিনিধিত্ব করে না"। আমার কী করা উচিত? CHECKDB
ব্যর্থ হচ্ছে যা একটি সমস্যা।
এই স্ক্রিপ্টটি ইস্যুটি পুনরুত্পাদন করে:
CREATE TABLE dbo.Cities(
ID int NOT NULL,
Position geography NULL,
CONSTRAINT PK_Cities PRIMARY KEY CLUSTERED
(
ID ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO
INSERT dbo.Cities (ID, Position) VALUES (20171, 0xE6100000010C4E2B85402E424A40A07312A518C72A40)
GO
CREATE SPATIAL INDEX IX_Cities_Position ON dbo.Cities
(
Position
)USING GEOGRAPHY_AUTO_GRID
WITH (
CELLS_PER_OBJECT = 16, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
এটি সংস্করণ 12.0.4427.24 (এসকিউএল সার্ভার 2014 এসপি 1 সিইউ 3)।
আমি স্কিমা এবং ডেটা দিয়ে তাজা স্ক্রিপ্ট করেছি, তাজা ডিবি এক্সিকিউট করব ted একই ত্রুটি। CHECKDB- তেও 45 মিনিটের এই অবিশ্বাস্য রানটাইম রয়েছে। আমি এসকিউএল প্রোফাইলার ব্যবহার করে CHECKDB ক্যোয়ারী পরিকল্পনা ক্যাপচার করেছি। এটি একটি বিভ্রান্তিকর লুপের সাথে যুক্ত হয়েছে যা স্পষ্টতই অতিরিক্ত রানটাইম তৈরি করে। পরিকল্পনার টেবিলের সারি সংখ্যাটিতে চতুর্মুখী রানটাইম রয়েছে! সন্দেহজনকভাবে নেস্ট করা স্ক্যানিং লুপটিতে যোগ দেয়।
সমস্ত অ-স্থানীয় সূচকগুলি সাফ করা কোনও পরিবর্তন হয় না।