اسکریپتی برای تخمین فشرده سازی دیتا- DataCompression
ما دو مدل از فشرده سازی دیتا ( DataCompression ) داریم:
- Page Compression
- Row Compression
اگر از جدول شما بیشتر Select زده میشود و کمتر اپدیت میشود مدل اول یعنی Page Compression مناسب برای فشرده سازی دیتای شما میباشد. و اگر دیتای جدول شما به دفعات اپدیت میشود Row Compression مناسب برای فشرده سازی دیتای شما میباشد. در مجموع من اثر page compression روی بهبود فضا و سرعت بیشتر از row compression دیدهام اما در کل باز هم این تصمیم بسته به نوع دیتا و سیستم شما هست.
فشرده سازی دیتا باعث میشه فضای دیسک کمتری در os اشغال کنید و همچنین موقع io زدن سرعت بالاتری بدست بیارید که این خودش به بهبود PerFormance شما کمک میکنه اما این کار یک بار اضافی سمت Cpu نسبت به موقعی که دیتای شما فشرده نیست میاره که اگر شما مشکل cpu دارید بهتره با احتیاط سمت این گزینه برید.
تخمین فشرده سازی
برای این تخمین از اسکریپت زیر استفاده میکنیم:
Page Compression
EXEC sp_estimate_data_compression_savings @schema_name = 'Production', @object_name = 'WorkOrder', @index_id = NULL, @partition_number = NULL, @data_compression = 'PAGE';
Row Compressio
EXEC sp_estimate_data_compression_savings @schema_name = 'Production', @object_name = 'WorkOrder', @index_id = NULL, @partition_number = NULL, @data_compression = 'ROW';
حالا در صورتی با این تخمین به این نتیجه رسیدید که فشرده سازی فضا به نفع سیستم و شما هست برای فعالسازی ان از اسکریپت زیر استفاده کنید:
Page Compression
ALTER TABLE Production.WorkOrder REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE); GO
Row Compressio
ALTER TABLE Production.WorkOrder REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW); GO
Disable Data Compression
ALTER TABLE Production.WorkOrder REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = NONE); GO
به یاد داشته باشید که شما فقظ یکی از گزینه های page compression یا row compression میتوانید روی یک جدول اجرا کنید. همچنین موقع فعالسازی این گزینه ممکن هست یک مقداری Cpu درگیر بشه.
ممنون میشم نظراتتون در این مقاله با من در میان بذارید
اموزش SqlServer