PDA

View Full Version : آموزش: فشرده سازی اولیه جدول : با دقت این کار را انجام دهید !



رسول_57
دوشنبه 13 مهر 1394, 22:38 عصر
فشرده سازی اولیه جدول : با دقت این کار را انجام دهید !

(نوشته جان واتسون : برای مطالعه دیگر نوشته های وی به وبلاگ وی (http://www.orafaq.com/blog/17574) مراجعه نمایید . )

در تمامی نسخه های پایگاه داده اوراکل فشرده سازی اولیه جدول پوشش داده می شود و نسبت های فشرده سازی قابل انتظار را می توان به دست آورد . اما دقت داشته باشید که دستورات مدیریت داده ناشی از این عمل ممکن است فاجعه بار باشد . در واقع ، فشرده سازی اولیه (یا فشرده سازی اولیه در سطح ذخیره سازی سطری با استفاده از سینتکس فعلی ) فشرده سازی کاملی نمی باشد . این نوع فشرده سازی به معنای حذف موارد تکراری در بلاک های داده ای است . اگر یک جمله یکسان بیش از یک بار در بلاک تکرار گردد تنها یکبار ذخیره می گردد با توکن هایی که در صورت نیاز به آن جملات اشاره می کند . اگر بتوانید داده هایتان را اندازه گیری کنید میزان کاهش مورد نظرتان را بدست خواهید آورد . با استفاده از کدهای زیر می توان نسبتی بهتر از 1 به 4 را بدست آورد .

orclz>
orclz> create table t1 as select * from all_objects;

Table created.

orclz> select blocks from user_segments where segment_name='T1';

BLOCKS
----------
1664

orclz> drop table t1;

Table dropped.

orclz> create table t1 compress as select * from all_objects;

Table created.

orclz> select blocks from user_segments where segment_name='T1';

BLOCKS
----------
384

orclz>

اکنون تعدادی دستور مدیریت داده یا DML را اجرا می کنم ، که تغییرات خاصی را ایجاد نمی کند .

orclz> update t1 set owner=owner;

90631 rows updated.

orclz> select blocks from user_segments where segment_name='T1';

BLOCKS
----------
1792

orclz>


چه جالب ! البته فعلا به بحث کارایی نمی پردازیم (مقاله بعدی وبلاگ) . ایده ای بدست خواهید آورد که چه چیزی اشتباه است .

orclz>
orclz> @?\rdbms\admin\utlchain

Table created.

orclz> analyze table t1 list chained rows;

Table analyzed.

orclz> select count(*) from chained_rows;

COUNT(*)
----------
83755

orclz>

شما در مورد این موضوع چه فکر می کنید ! انگار تمامی سطرها مهاجرت کرده اند . به زودی در مقاله ای دیگر در مورد این موضوع بحث می کنیم .