日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转: Oracle 索引详解

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转: Oracle 索引详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一. 索引介紹
1.1 索引的創建語法
????????
CREATE UNIUQEBITMAP INDEX <schema>.<index_name>????
????????????????????????????????????????????? #使用UNIUQE就會附送1個唯一索引, BITMAP為位圖索引,默認是B樹索引。
ON <schema>.<table_name> (
? ? ? ? ? ? ? <column1_name> | <expression> ASC | DESC,
????????????? <column2_name> | <expression> ASC | DESC,

????????????? )????????????????????????????? #可以對多列進行聯合索引, 當為expression時即系"函數索引"
TABLESPACE <tablespace_name>? #指定存放索引的表空間(索引和對應表不在1個表空間,效率會更高)
STORAGE <storage_setting>????????? #可以進一步設置表空間的存儲參數
LOGGING | NOLOGGING?????????????? #是否對索引產生重做日志(對達標盡量使用NOLOGGING來減少占用空間并提高效率)
COMPUTE STATISTICS??????????????? #創建新索引時收集系統信息.
NOCOMPRESSCOMPRESS<nn>? #是否使用"鍵壓縮"(使用鍵壓縮可以刪除1個鍵列中出現的重復值)
NOSORT | REVERSE????????????????????? #正向索引還是反向索引
PARTITION | NOPARTITION??????? #可以在分區表和未分區表上對創建的索引進行分區


1.2 索引的特點
1.通過創建1個唯一性索引,系統會自動創建1個唯一性約束。 可以保證該列(或約干列的唯一性).
2.可以大大加快數據的檢索速度,這也是創建索引的目的。
3.可以加速表與表之間的連接。
4.在使用分組和排序字句進行數據查詢時,同樣可以顯著減少分組和排序時間。
5.通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統性能。
6.對于搜索的數據占表數據的比例越低,索引的作用越明顯.

1.3 索引的不足
1. 創建和維護索引需要時間成本,而且隨數據量增加而增加。
2. 索引會占大量物理空間,不過隨著單位硬盤價格不斷降低,忽略拉。
3. 對表中數據怎想增刪改操作時,索引也要更新維護,會降低增刪改的性能。

1.4 應該建索引列的特點
1. 在經常需要搜索的列上,可以加快搜索速度。
2. 在作為主鍵的列上, 強制該列的唯一性和組織表中數據的排列結構。
3. 在經常用在連接的列上(如外鍵), 加快表連接速度。
4. 在經常需要根據范圍進行搜索的列上,因為索引已經排序,其指定的范圍是連續的。
5. 在經常需要排序的列上。
6. 在經常處于where 條件的列上。

1.5 不應該建索引列的特點
1. 對于那些在查詢中很少使用或者參考的列不應該創建索引。這是因為,既然這些列很少使用到,因此有索引或者無索引,并不能提高查詢速度。相反,由于增加了索引,反而降低了系統的維護速度和增大了空間需求。

2.對于那些只有很少數據值的列也不應該增加索引。這是因為,由于這些列的取值很少,例如人事表的性別列,在查詢的結果中,結果集的數據行占了表中數據行的很大比例,即需要在表中搜索的數據行的比例很大。增加索引,并不能明顯加快檢索速度。

3.對于那些定義為blob數據類型的列不應該增加索引。這是因為,這些列的數據量要么相當大,要么取值很少.

4.當修改性能遠遠大于檢索性能時,不應該創建索引。這是因為,修改性能和檢索性能是互相矛盾的。當增加索引時,會提高檢索性能,但是會降低修改性能。當減少索引時,會提高修改性能,降低檢索性能。因此,當修改性能遠遠大于檢索性能時,不應該創建索引。


1.6 限制索引
限制索引是一些沒有經驗的開發人員經常犯的錯誤之一。在SQL中有很多陷阱會使一些索引無法使用。
下面討論一些常見的問題:

1. 使用不等于操作符(<>,!=)
待續哈哈
???

總結

以上是生活随笔為你收集整理的转: Oracle 索引详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。