ক্যোয়ারী টিউনিং এবং পরীক্ষার উদ্দেশ্যে, আপনি চালনার দ্বারা ম্যানুয়ালি একটি সারণির সূচী পরিসংখ্যানগুলিতে একটি সারি গণনা এবং পেজকাউন্ট নির্ধারণ করতে পারেন UPDATE STATISTICS
। তবে আপনি কীভাবে টেবিলের আসল বিষয়বস্তুতে পরিসংখ্যানগুলি পুনরায় সংশোধন / পুনরায় সেট করবেন?
--- Create a table..
CREATE TABLE dbo.StatTest (
i int NOT NULL,
CONSTRAINT PK_StatTest PRIMARY KEY CLUSTERED (i)
);
GO
--- .. and give it a thousand-or-so rows:
DECLARE @i int=1;
INSERT INTO dbo.StatTest (i) VALUES (@i);
WHILE (@i<1000) BEGIN;
INSERT INTO dbo.StatTest (i) SELECT @i+i FROM dbo.StatTest;
SET @i=@i*2;
END;
একটি ডামি কোয়েরি:
SELECT i%100, COUNT(*) FROM dbo.StatTest GROUP BY i%100;
... নিম্নলিখিত ক্যোয়ারী পরিকল্পনাটি ফিরিয়ে দেবে (সূচী স্ক্যানের সারি অনুমানটি 1024 সারি)।
UPDATE STATISTICS
কমান্ড চালান ..
UPDATE STATISTICS dbo.StatTest WITH ROWCOUNT=10000000;
... এবং পরিকল্পনাটি এখন 10 মিলিয়ন সারিগুলির অনুমান সহ এইরকম দেখাচ্ছে:
আমি কীভাবে ব্যবহার না করে টেবিলের আসল বিষয়বস্তুগুলিতে সারি গণনাটি পুনরায় সেট করব WITH ROWCOUNT
?
আমি চেষ্টা করেছি WITH FULLSCAN
, WITH RESAMPLE
এবং WITH SAMPLE n ROWS
, তবে পরিসংখ্যানের সারি গণনা 10 মিলিয়ন সারি। একটি সারি সন্নিবেশ করা বা এমনকি সমস্ত সারি মুছে ফেলা পরিসংখ্যান আপডেট করে না, কারণ পরিবর্তনটি খুব ছোট।