oracle資料庫建索引
① oracle資料庫兩張數據量相同的表關聯查詢建索引快還是不建
建索引快。要想通過添加索引的方式提高查詢速度需要注意幾點,首先是確保索引中盡可能包含where條件中的欄位,其次索引欄位的順序也盡可能保持一致。oracle資料庫兩張數據量相同的表關聯查詢建索引快,對表添加合適的索引,能夠提高用戶查詢該表的速度,但並不是所有的表都適合添加索引,具體情況要看自身的業務需要。
② oracle並行建索引
我們創建索引的時候,可以啟用並行,來加快速度,例如:
訪問有並行度的索引時,CBO可能可能會考慮並行執行,這可能會引發一些問題,
如在伺服器資源緊張的時候用並行會引起更加嚴重的爭用。
當使用並行後,需要把並行度改回來,例如:
③ oracle資料庫如何重建索引
當索引的碎片過多時,會影響執行查詢的速度,從而影響到我們的工作效率。這時候採取的最有利的措施莫過於重建索引了。本文主要介紹了Oracle資料庫中檢查索引碎片並重建索引的過程,接下來我們就開始介紹這一過程。 重建索引的步驟如下: 1. 確認基本信息 登入資料庫,找到專門存放index 的tablespace,並且這個tablespace下所有index的owner都是tax.將index專門存放在一個獨立的tablespace, 與數據表的tablespace分離,是常用的資料庫設計方法。 2. 查找哪些index需要重建 通過anlyze index .... validate structure命令可以分析單個指定的index,並且將單個index 分析的結果存放到 index_stats試圖下。一般判斷的依據是: height >4 pct_used < 50% del_lf_rows / lf_rows +0.001 > 0.03 g ) 3. google上下載了遍歷所有index腳本 發現anlyze index .... validate structure只能填充單個index分析信息,於是google了下,從網上下了個Loop 腳本,遍歷索引空間下所有的索引名字,並且可以把所有index的分析信息存放到自己建立的一個用戶表中。 4. anlyze index 鎖定index 發現下載的腳本不好用,應為anlyze index在分析索引前要爭取獨占鎖,鎖住index,很明顯有些index正在被應用系統的使用,所以運行anlyze失敗。這里吸取的教訓是,盡量晚上做這種事。但是本人比較喜歡准時回家,所以在語句中添加Exception Handler,拋出anlyze index執行失敗的那些index 名稱,使腳本正常運行完畢。並且根據列印到前台的index name手動執行那些index分析。 5. 總結 雖然發現522個index中有160個符合上面的判斷的依據。但是發現索引都不大,而那些擁有百萬leaf的索引又沒有符合上面的判斷條件,所以結論是無需index rebuild online. 沒有啥碎片。 6.什麼時候可以rebuild index呢? rebuild index online,對那些有大量DML操作的大索引是有益的。可以每個月季度做一次針對較大索引的rebuild。
④ oracle 資料庫如何建立索引 如何用索引
創建索引語法:
CREATE [UNIQUE] | [BITMAP] INDEX index_name
--unique表示唯一索引
ON table_name([column1 [ASC|DESC],column2
--bitmap,創建點陣圖索引
[ASC|DESC],…] | [express])[TABLESPACE tablespace_name][PCTFREE n1]
--指定索引在數據塊中空閑空間
[STORAGE (INITIAL n2)][NOLOGGING]
--表示創建和重建索引時允許對表做DML操作,默認情況下不應該使用
[NOLINE][NOSORT];
--表示創建索引時不進行排序,默認不適用,如果數據已經是按照該索引順序排列的可以使用
(4)oracle資料庫建索引擴展閱讀:
1、如果有兩個或者以上的索引,其中有一個唯一性索引,而其他是非唯一,這種情況下oracle將使用唯一性索引而完全忽略非唯一性索引
2、至少要包含組合索引的第一列(即如果索引建立在多個列上,只有它的第一個列被where子句引用時,優化器才會使用該索引)
3、小表不要簡歷索引
4、對於基數大的列適合建立B樹索引,對於基數小的列適合簡歷點陣圖索引
5、列中有很多空值,但經常查詢該列上非空記錄時應該建立索引
6、經常進行連接查詢的列應該創建索引
7、使用create index時要將最常查詢的列放在最前面
8、LONG(可變長字元串數據,最長2G)和LONG RAW(可變長二進制數據,最長2G)列不能創建索引
9、限製表中索引的數量(創建索引耗費時間,並且隨數據量的增大而增大;索引會佔用物理空間;當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度)