ফিক্সিবল স্পেসিয়াল ইনডেক্স দুর্নীতিগুলি কি সাধারণ হিসাবে বিবেচিত হয়?


23

আমার কাছে একটি স্থানিক সূচক রয়েছে যার জন্য 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 ক্যোয়ারী পরিকল্পনা ক্যাপচার করেছি। এটি একটি বিভ্রান্তিকর লুপের সাথে যুক্ত হয়েছে যা স্পষ্টতই অতিরিক্ত রানটাইম তৈরি করে। পরিকল্পনার টেবিলের সারি সংখ্যাটিতে চতুর্মুখী রানটাইম রয়েছে! সন্দেহজনকভাবে নেস্ট করা স্ক্যানিং লুপটিতে যোগ দেয়।

ডিবিসিসির কার্যকর পরিকল্পনা

সমস্ত অ-স্থানীয় সূচকগুলি সাফ করা কোনও পরিবর্তন হয় না।

উত্তর:


25

আমি 2014 - 12.0.4213.0 এ তাৎক্ষণিকভাবে পুনরুত্পাদন করতে পারিনি তবে এটি এসকিউএল সার্ভার 2016 (সিটিপি 3.0) - 13.0.700.242 এ দেখতে পাচ্ছি।

2014 বিল্ডে (কোনও ডিবিসিসি ত্রুটিবিহীন) পরিকল্পনাটি নীচের মত দেখাচ্ছে।

এখানে চিত্র বর্ণনা লিখুন

আর 2016 বিল্ড উপর ( সঙ্গে DBCC সমস্যা নির্দেশ) এই মত।

এখানে চিত্র বর্ণনা লিখুন

দ্বিতীয় পরিকল্পনায় একত্রিক সারি রয়েছে যা মার্জ অ্যান্টি আধা সেমিনে আসে, প্রথম পরিকল্পনাটি শূন্য সারি।

যোগদানের পূর্বাভাস pk0স্থানিক সূচীর কলামের সাথে কী মিলছে সে সম্পর্কে আলাদা ।

এখানে চিত্র বর্ণনা লিখুন

প্রথমটি এটি সঠিকভাবে টেবিলের মানচিত্রটিকে প্রাথমিক কীতে ম্যাপ করে, দ্বিতীয়টি এটিকে Idটিভিএফ থেকে ফিরে আসা কলামে ম্যাপ করে ।

এসকিউএল সার্ভার ২০১২ এর অভ্যন্তরীণ বই অনুসারে এটি কোষের হিলবার্ট সংখ্যার জন্য বাইনারি (5) মান তাই এই প্রাক্কটিকটি অবশ্যই ভুল (বেস টেবিলের একক সারির আইডি যদি 20171 এর পরিবর্তে 1052031049 এ সেট করা হয় তবে আমি কোন আর এর সাথে কোনও ডিবিসিসি ত্রুটি দেখুন যেমন এর মানটির সাথে এটি মিলিত হয় 0xa03eb4b849)।


2014 - 12.0.4213.0 এ টেবিলটি পুনরায় তৈরি করার পরে নীচে আমি সমস্যার পুনরুত্পাদন করতে পারলাম।

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)
)

(উল্লেখ্য থেকে পরিবর্তন IDকরতে Id)

আমার 2014 উদাহরণটি কেস সংবেদনশীল কোলেশন সহ ইনস্টল করা আছে। সুতরাং দেখে মনে হচ্ছে এটি এর আগে কলামের বিভ্রান্তি রোধ করেছে।

সুতরাং আমি অনুমান করি যে কোনও সম্ভাব্য কাজটি উদাহরণ Citiesহিসাবে কলামটির পুনরায় নামকরণ করতে পারে CityId

আইটেম সংযুক্ত করুন (মাইক্রোসফ্ট বাগ রিপোর্ট)


4
এটি একটি দুর্দান্ত ত্রুটি :) ক্রেজি লুপটিতে যোগদানের বিষয়টিও ব্যাখ্যা করতে পারে কারণ সম্ভবত এটি সম্ভবত উচ্চতর কার্ডিনালিটির সাথে যুক্ত হওয়ার জন্য একটি ভাল পছন্দ হতে পারে।
বুট

7
@ বুট 4 লাইফ Idবিভ্রান্তির ফলে স্ক্যান হওয়ার চেষ্টা কী হওয়া উচিত causes মার্টিন। এটি কেবল AUTO_GRIDবিকল্পটি প্রভাবিত করে । আমি একটি স্পর্শকাতর জোটের সাথে 2014 এসপি 1 সিই 4 এ বাগটি পুনরুত্পাদন করতে পারি। এসকিউএল সার্ভার ভুলভাবে প্রসারিত চেক কোয়েরি তৈরি করে।
পল হোয়াইট GoFundMonica বলেছেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.