主頁 > 知識庫 > oracle 索引的相關介紹(創(chuàng)建、簡介、技巧、怎樣查看) .

oracle 索引的相關介紹(創(chuàng)建、簡介、技巧、怎樣查看) .

熱門標簽:征服眼公司地圖標注 百度地圖標注素材 開封智能外呼系統(tǒng)廠家 外呼線路外顯本地號碼 阿爾巴尼亞地圖標注app 美圖秀秀地圖標注 人工智能地圖標注自己能做嗎 word地圖標注方向 征服者火車站地圖標注
一、索引簡介

1、索引相當于目錄
2、索引是通過一組排序后的索引鍵來取代默認的全表掃描檢索方式,從而提高檢索效率。
3、索引的創(chuàng)建要適度,多了會影響增刪改的效率,少了會影響查詢的效率,索引最好創(chuàng)建在取值分散的列上,避免對同一張表創(chuàng)建過多的索引
4、索引的使用對用戶來說是透明的,由系統(tǒng)來決定什么時候使用索引。
5、Oracle支持多種類型的索引,可以按列的多少、索引值是否唯一和索引數(shù)據(jù)的組織形式對索引進行分類,以滿足各種表和查詢條件的要求。(請見附件)
a. 單列索引和復合索引
b.B樹索引(create index時默認的類型)
B樹索引中所有葉子節(jié)點都具有相同的深度,所以不管查詢條件如何,查詢速度基本相同。另B樹索引能夠適應各種查詢條件,包括精確查詢、模糊查詢和比較查詢
--Unique 唯一索引 值唯一,但允許存在null,主鍵默認存在唯一索引,但列不能為null
--Non-Unique:非唯一索引,其索引值可以重復,允許為NULL。默認情況下,Oracle創(chuàng)建的索引是非唯一索引
--Reverse Key:反向關鍵字索引。通過在創(chuàng)建索引時指定“REVERSE”關鍵字,可以創(chuàng)建反向關鍵字索引,被索引的每個數(shù)據(jù)列中的數(shù)據(jù)都是反向存儲
的,但仍然保持原來數(shù)據(jù)列的次序
c.位圖索引(對列值范圍少,如性別 政治面貌適用,而不是默認的B樹索引)
c.函數(shù)索引
當需要經(jīng)常訪問一些函數(shù)或表達式時,可以將其存儲在索引中,當下次訪問時,由于該值已經(jīng)計算出來了,因此,可以大大提高那些在WHERE子句中包含該函數(shù)或
表達式的查詢操作的速度;
函數(shù)索引既可以使用B樹索引,也可以使用位圖索引。

二、管理索引的原則

使用索引應該遵循以下一些基本的原則。
1.小表不需要建立索引
2.對于大表而言,如果經(jīng)常查詢的記錄數(shù)目少于表中總記錄數(shù)目的15%時,可以創(chuàng)建索引。這個比例并不絕對,它與全表掃描速度成反比。
3.對于大部分列值不重復的列可建立索引。
4.對于基數(shù)大的列,適合建立B樹索引,而對于基數(shù)小的列適合建立位圖索引。
5.對于列中有許多空值,但經(jīng)常查詢所有的非空值記錄的列,應該建立索引。
6.LONG和LONG RAW列不能創(chuàng)建索引。
7.經(jīng)常進行連接查詢的列上應該創(chuàng)建索引。
8.在使用CREATE INDEX語句創(chuàng)建查詢時,將最常查詢的列放在其他列前面。
9.維護索引需要開銷,特別時對表進行插入和刪除操作時,因此要限制表中索引的數(shù)量。對于主要用于讀的表,則索引多就有好處,但是,一個表如果經(jīng)常被更改,則索引應少點。
10.在表中插入數(shù)據(jù)后創(chuàng)建索引。如果在裝載數(shù)據(jù)之前創(chuàng)建了索引,那么當插入每行時,Oracle都必須更改每個索引。

三、LONG類型(可存儲2G)主要用于不需要作字符串搜索的長串數(shù)據(jù),如果要進行字符搜索就要用varchar2類型,存儲這么長的請使用 pstat1.setCharacterStream()方法,資料見附件P26

四、創(chuàng)建索引語法如下

CREATE INDEX語句的語法如下:
CREATE [UNIQUE] | [BITMAP] INDEX index_name
ON table_name([column1 [ASC|DESC],column2
[ASC|DESC],…] | [express])
[TABLESPACE tablespace_name]
[PCTFREE n1]
[STORAGE (INITIAL n2)]
[NOLOGGING]
[NOLINE]
[NOSORT];


五、
1、查看索引信息可以在 all_indexs 表中
2、查看索引信息及引用的列 all_ind_columns
3、查看函數(shù)索引信息 all_ind_expressions

4、oracle比較智能,有時候即使創(chuàng)建了索引也不會使用,比如說在數(shù)據(jù)量比較少的情況下,可能就不會用索引
5、當進行全表掃描的時候,不用索引效率會更好
6、查詢可能會使用緩存,所以說如果發(fā)現(xiàn)執(zhí)行速度變快了,不一定說明你的sql更優(yōu)了,有可能是使用到了緩存而已
7、使用plsql中的“解釋計劃”功能可以比較執(zhí)行計劃的消耗,進而寫出更優(yōu)的sql
您可能感興趣的文章:
  • MySQL索引類型總結和使用技巧以及注意事項
  • mysql索引使用技巧及注意事項
  • MySQL數(shù)據(jù)庫優(yōu)化技術之索引使用技巧總結
  • mysql索引使用率監(jiān)控技巧(值得收藏?。?/li>
  • SQL Server 數(shù)據(jù)庫索引其索引的小技巧
  • 優(yōu)化 SQL Server 索引的小技巧
  • 通過一分鐘快速了解索引技巧

標簽:海北 淮南 孝感 泰安 六安 酒泉 宜春 葫蘆島

巨人網(wǎng)絡通訊聲明:本文標題《oracle 索引的相關介紹(創(chuàng)建、簡介、技巧、怎樣查看) .》,本文關鍵詞  oracle,索引,的,相關,介紹,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle 索引的相關介紹(創(chuàng)建、簡介、技巧、怎樣查看) .》相關的同類信息!
  • 本頁收集關于oracle 索引的相關介紹(創(chuàng)建、簡介、技巧、怎樣查看) .的相關信息資訊供網(wǎng)民參考!
  • 推薦文章