1、直接建立索引
可以使用create index語句明確地建立索引,例如在emp表的ename列上建立乙個名為emp_ename的索引,該索引使用表空間users。
sql> create index emp_ename on emp(ename) storage(initial 50,next 50,on users);
該語句為該索引明確地指定了幾個儲存位置和乙個表空間。如果沒有給索引指定儲存選項,則initial和next等儲存選項會自動使用表空間的預設儲存選項。
2 、建立聚集索引
當建表語句未指定聚集索引鍵時,達夢資料庫預設的聚集索引鍵是rowid。若指定索引鍵,表中資料都會根據指定索引鍵排序。
建表後,dm8也可以用建立新聚集索引的方式來重建表資料,並按新的聚集索引排序。
sql> create cluster index clu_emp on emp(ename);
建議在建表時就確定聚集索引鍵,或在表中資料比較少時新鍵聚集索引,而盡量不要對資料量非常大的表建立聚集索引。
3、 建立唯一索引
索引可以是唯一的或非唯一的,唯一索引可以保證表上不會有兩行資料在鍵列上具有相同的值,非唯一索引不會在鍵列上施加這個限制。
使用create unique index語句來建立唯一索引
sql> create unique index dept_unique_index on dept (dname) storage (on users);
使用者希望在列上定義unique完整性約束,達夢資料庫可以通過自動地在唯一鍵上定義乙個唯一索引來保證unique完整性約束。
4 、自動建立與約束相關的唯一索引
達夢資料庫可以通過在唯一鍵或主鍵上建立乙個唯一索引來在表上實施unique key 或primary key完整性約束。
sql> alter table emp add constraint pk_emp_name primary key(name);
上面語句會自動在表emp的name列上建立乙個唯一索引。
5、 建立基於函式的索引
基於函式的索引促進了限定函式或表示式的返回值的查詢,該函式或表示式的值被預先計算出來並儲存在索引中。
1.建立更強有力的分類,可以用upper和lower函式執行區分大小寫的分類
2.預先計算出計算密集的函式的值,並在索引中將其分類。可以在索引中儲存要經常訪問的計算密集的函式,當需要訪問值時,該值已經計算出來了。可以極大地改善查詢的執行效能。
3.增加了優化器執行範圍掃瞄而不是全表掃瞄的情況的數量
sql> create index idx on example_tab(column_a + column_b);
sql> select * from example_tab where column_a + column_b <10;
上面建立的索引是建立在column_a + column_b 之上的,索引優化器可以在下面的查詢與語句中使用範圍掃瞄。優化器根據該索引計算查詢代價,如果代價最少,優化器就會選擇該函式索引,column_a+column_b就不會重複計算。
6、 建立位圖索引
位圖索引只要針對含有大量相同值得列而建立。位圖索引被廣泛引用到資料倉儲中,建立方式和普通索引一致,對低基數(不同得值很少)得列建立位圖索引,能夠有效提高基於該列得查詢效率。且執行查詢語句的weher子句中帶有and和or謂詞時,效率更加明顯。
sql> create bitmap index s1 on purchasing.vendor(vendorid);
建立乙個位圖索引
達夢資料庫和mysql索引引擎 達夢資料庫 索引
1.索引的種類和功能 聚集索引 每乙個普通表有且只有乙個聚集索引 唯一索引 索引資料根據索引鍵唯一 函式索引 包含函式 表示式的預先計算的值 位圖索引 對低基數的列建立位圖索引 位圖連線索引 針對兩個或者多個表連線的點陣圖索引,主要用於資料倉儲中 全文索引 在表的文字列上而建的索引。2.何時使用索引...
達夢資料庫的索引管理
在關聯式資料庫中,索引是一種單獨的 物理的對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。達夢支援的索引 二級索引,位圖索引,唯一索引,復合索引,函式索引,分割槽索引等。一 建立索引的規則 適合建索引的情況 經常...
如何在Windows安裝達夢資料庫(DM8)
達夢資料庫管理系統是達夢公司推出的具有完全自主智財權的高效能資料庫管理系統,簡稱dm。1 檢查系統資訊 systeminfo2 檢查記憶體及儲存空間 dm安裝1g左右,也要為之後例項運作預留空間1.檢查記憶體 為了保證 dm 的正確安裝和執行,要盡量保證作業系統至少 1gb 的可用記憶體 ram 如...