點陣圖連線索引

點陣圖連線索引(bitmap join index)是基於兩個表的連線的點陣圖索引,在數據倉庫環境中使用這種索引改進連線維度表和事實表的查詢的性能。創建點陣圖連線索引時,標準方法是連線索引中常用的維度表和事實表。當用戶在一次查詢中結合查詢事實表和維度表時,就不需要執行連線,因為在點陣圖連線索引中已經有可用的連線結果。通過壓縮點陣圖連線索引中的ROWID進一步改進性能,並且減少訪問數據所需的I/O數量。

語法與實例,限制使用條件,

語法與實例

創建點陣圖連線索引時,指定涉及的兩個表。相應的語法應該遵循如下模式:
create bitmap index FACT_DIM_COL_IDX
on FACT(DIM.Descr_Col)
from FACT, DIM
where FACT.JoinCol = DIM.JoinCol;
點陣圖連線的語法比較特別,其中包含FROM子句和WHERE子句,並且引用兩個單獨的表。索引列通常是維度表中的描述列-- 就是說,如果維度是CUSTOMER,並且它的主鍵是CUSTOMER_ID,則通常索引Customer_Name這樣的列。如果事實表名為SALES,可以使用如下的命令創建索引:
create bitmap index SALES_CUST_NAME_IDX
on SALES(CUSTOMER.Customer_Name)
from SALES, CUSTOMER
where SALES.Customer_ID=CUSTOMER.Customer_ID;
如果用戶接下來使用指定Customer_Name列值的WHERE子句查詢SALES和CUSTOMER表,最佳化器就可以使用點陣圖連線索引快速返回匹配連線條件和Customer_Name條件的行。

限制使用條件

點陣圖連線索引的使用一般會受到限制:只可以索引維度表中的列。用於連線的列必須是維度表中的主鍵或唯一約束;如果是複合主鍵,則必須使用連線中的每一列。不可以對索引組織表創建點陣圖連線索引,並且適用於常規點陣圖索引的限制也適用於點陣圖連線索引。

熱門詞條

聯絡我們