সূচিগুলি পুনর্নির্মাণ / পুনর্গঠন করার সময় সংকুচিত থাকে।
টেবিল এবং সংক্ষেপিত সূচক তৈরি করুন
CREATE TABLE DBO.TEST_INDX(id int, bla varchar(255));
CREATE INDEX IX1 ON dbo.TEST_INDX(id) WITH (DATA_COMPRESSION = PAGE);
সংক্ষেপণ পরীক্ষা করুন
SELECT i.name, p.data_compression_desc
FROM sys.partitions P
INNER JOIN sys.indexes I ON I.object_id = P.object_id AND I.index_id = P.index_id
WHERE P.data_compression > 0 and I.name = 'IX1';
ফলাফল
name data_compression_desc
IX1 PAGE
সূচকটি পুনর্নির্মাণ করুন
ALTER INDEX IX1 on DBO.TEST_INDX rebuild
সংক্ষেপণ পরীক্ষা করুন
SELECT i.name, p.data_compression_desc
FROM sys.partitions P
INNER JOIN sys.indexes I ON I.object_id = P.object_id AND I.index_id = P.index_id
WHERE P.data_compression > 0 and I.name = 'IX1'
ফলাফল
name data_compression_desc
IX1 PAGE
এগুলি অক্ষম করা এবং তারপরে পুনর্নির্মাণের আলাদা ফলাফল রয়েছে, যেহেতু অক্ষম করা সূচকটিকে সরিয়ে দেয়, সূচী সংজ্ঞাটি রেখে গিয়ে।
alter index IX1 on DBO.TEST_INDX DISABLE ;
alter index IX1 on DBO.TEST_INDX REBUILD ;
ফলাফল
name data_compression_desc
সংক্ষেপ নষ্ট হয়ে গিয়েছিল, এসএসএমএসের মাধ্যমে সূচকগুলি তৈরি স্ক্রিপ্টটি মানিয়ে না নিয়ে ছাড়ার সময় এবং সূচি তৈরি করার সময় সংক্ষেপণ সংজ্ঞাও নষ্ট হয়ে যায়।
কেন?
কারণ সূচি তৈরির বিবৃতি স্ক্রিপ্ট করার সময় ডেটা-সংক্ষেপণ বিকল্পটি ধরে রাখা হয় না।
তবে, যদি আমরা সূচকটি অক্ষম করি, সংক্ষেপণের সাথে পুনর্নির্মাণ এবং তারপরে আবার পুনর্নির্মাণ:
alter index IX1 on DBO.TEST_INDX DISABLE ;
alter index IX1 on DBO.TEST_INDX REBUILD WITH (DATA_COMPRESSION = PAGE);
alter index IX1 on DBO.TEST_INDX REBUILD;
ফলাফল
name data_compression_desc
IX1 PAGE
ওলা হ্যালেঞ্জ্রেনের রক্ষণাবেক্ষণ সমাধান সহ পুনর্নির্মাণের পরীক্ষা করা
পরামিতিগুলি পরীক্ষার উদ্দেশ্যে পরিবর্তিত হয়।
MinNumberOfPages প্যারামিটারের জন্য এটির প্রয়োজন হিসাবে একটি পৃষ্ঠায় পেতে কিছু ডেটা যুক্ত করুন।
INSERT INTO dbo.TEST_INDX(id,bla)
VALUES(5,'test');
go 10
বিবৃতিটি মুদ্রণের জন্য সূচকটি অনুকূলিত করে নিন proc
EXECUTE dbo.IndexOptimize
@Databases = 'TestDB',
@FragmentationLow = 'INDEX_REBUILD_ONLINE',
@FragmentationMedium = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@Indexes = 'TestDB.DBO.TEST_INDX',
@Execute = 'N',
@MinNumberOfPages = 1;
ফলাফল:
Command: ALTER INDEX [IX1] ON [TestDB].[dbo].[TEST_INDX] REBUILD WITH (SORT_IN_TEMPDB = OFF, ONLINE = ON, RESUMABLE = OFF)
Comment: ObjectType: Table, IndexType: NonClustered, ImageTex
t: No, NewLOB: No, FileStream: No, ColumnStore: No, AllowPageLocks: Yes, PageCount: 1, Fragmentation: 0
Outcome: Not Executed
Duration: 00:00:00
Date and time: 2019-01-09 14:48:12
উত্পন্ন কমান্ড কার্যকর করা হচ্ছে
ALTER INDEX [IX1] ON [TestDB].[dbo].[TEST_INDX] REBUILD WITH (SORT_IN_TEMPDB = OFF, ONLINE = ON, RESUMABLE = OFF)
সংকোচন ধরে রাখা হয়
name data_compression_desc
IX1 PAGE
রক্ষণাবেক্ষণ পরিকল্পনার সাথে একটি পুনর্নির্মাণের পরীক্ষা করা (আমি ওলার সমাধানের জন্য দৃ strongly়ভাবে তর্ক করব)
সূচকগুলি পুনর্নির্মাণ করুন
পরীক্ষার টেবিলটি বেছে নিন
কিছু পরীক্ষার খণ্ডন স্তর যুক্ত করুন।
বিভাজনটি পেতে কিছু মান সন্নিবেশ করান
INSERT INTO dbo.TEST_INDX(id)
SELECT id from TEST_INDX
go 4
খণ্ডের শতাংশ পরীক্ষা করুন
SELECT
I.[name] AS INDX ,
IPS.avg_fragmentation_in_percent,
IPS.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), object_id('[dbo].[TEST_INDX]'), NULL, NULL, NULL) AS IPS
INNER JOIN sys.indexes AS I ON I.[object_id] = IPS.[object_id]
AND IPS.index_id = I.index_id
WHERE IPS.database_id = DB_ID()
and I.name = 'IX1'
ফলাফল
INDX avg_fragmentation_in_percent page_count
IX1 66,6666666666667 3
পরিকল্পনা চালান
এখানে আকর্ষণীয় অংশটি, পরিকল্পনার প্রতিবেদনের দিকে তাকানোর পরে, DATA_COMPRESSION = PAGE
বিকল্পটি উত্পন্ন REBUILD
কমান্ডের সাথে যুক্ত করা হয় !
Command:USE [TestDB]
GO
ALTER INDEX [IX1] ON [dbo].[TEST_INDX] REBUILD PARTITION = ALL WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, RESUMABLE = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, DATA_COMPRESSION = PAGE)
ফ্র্যাগমেন্টেশন:
INDX avg_fragmentation_in_percent page_count
IX1 0 2
সঙ্কোচন:
name data_compression_desc
IX1 PAGE