Oracle 12c新特性之:使用高階索引壓縮建立索引

jelephant發表於2016-12-09

使用高階索引壓縮建立索引減少了所有支援的唯一和非唯一索引的大小。 高階索引壓縮顯著提高了壓縮率,同時仍提供對索引的有效訪問。 因此,高階索引壓縮在所有支援的索引上工作良好。

注:

此功能自Oracle Database 12c第1版(12.1.0.2)開始提供。

對於分割槽索引,可以在分割槽基礎上指定壓縮型別。 你還可以對索引分割槽指定高階索引壓縮,即使父索引未壓縮。

高階索引壓縮在塊級別工作,為每個塊提供最佳壓縮。 當執行 CREATE INDEX DDL語句時,塊用行填充。 當它已滿時,如果儲存足夠的空間插入下一行,則使用高階索引壓縮排行壓縮。 當執行DML語句或其他型別的DDL語句,並且塊已滿並將要拆分時,可以使用高階索引壓縮來重新壓縮該塊,以避免在儲存足夠空間以插入傳入關鍵字時進行拆分。

在啟用高階索引壓縮之前,資料庫必須具有12.1.0或更高的相容性級別。 您可以使用COMPRESS ADVANCED LOW子句啟用高階索引壓縮。 例如,以下語句在建立 hr.emp_mndp_ix 索引期間啟用高階索引壓縮:

CREATE INDEX hr.emp_mndp_ix ON hr.employees(manager_id, department_id)
   COMPRESS ADVANCED LOW;

你還可以在索引重建期間指定 COMPRESS ADVANCED LOW 子句。 例如,在重建期間,你可以對 hr.emp_manager_ix 索引啟用高階索引壓縮,如下所示:

ALTER INDEX hr.emp_manager_ix REBUILD COMPRESS ADVANCED LOW;

ALL_INDEXESALL_IND_PARTITIONSALL_IND_SUBPARTITIONS 檢視中的 COMPRESSION 列顯示索引是否被壓縮,如果壓縮,則索引的啟用壓縮型別。

注:

  • 點陣圖索引或索引組織表不支援高階索引壓縮。

  • 不能在單個列唯一索引上指定高階索引壓縮。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29337971/viewspace-2130192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章