oracle 效能優化(一)
SELECT BLOG_ID ,WEBROOT
FROM BLOG_USER BU
WHERE BU.WEB_ID=2314
/
--WEB_ID上有索引,強制全表掃描,注意:如果表使用了別名那麼提示也必須使用別名
SELECT /*+ FULL(BU) */ BLOG_ID ,WEBROOT
FROM BLOG_USER BU
WHERE BU.WEB_ID=2314
/
--指定多個提示:執行全表掃描和快取表名,用空格將多個提示分開
SELECT /*+ FULL(BU) CACHE(BU)*/ BLOG_ID ,WEBROOT
FROM BLOG_USER BU
WHERE BU.WEB_ID=2314
/
--FIRST_ROWS一般會強制使用某些索引,而在正常環境下可能不會使用這些索引
SELECT COUNT(*)
FROM BLOG_USER----742643資料量
1、SELECT BLOG_ID ,WEBROOT
FROM BLOG_USER BU
WHERE BU.WEB_ID>=2314
2、SELECT /*+ FIRST_ROWS(10) */ BLOG_ID ,WEBROOT
FROM BLOG_USER BU
WHERE BU.WEB_ID>=2314
1、2兩者,第一個執行全表掃描,第二個會走索引, 第二個的代價就是檢索很多行時速度將會非常慢,在這個例子中也確實比第一個慢
/
--ALL_ROWS以最快速度檢索出所有行(最佳吞吐量)
/
--NO_INDEX提示 禁止優化器使用某個索引
SELECT /*+ NO_INDEX(BU IDX_BLOG_USER_WEBID) */ BLOG_ID ,WEBROOT
FROM BLOG_USER BU
WHERE BU.WEB_ID=2314
限制不使用多個索引
SELECT /*+ NO_INDEX(S IDX_STUDENT_NAME) NO_INDEX(C IDX_UN_CONNECTOR) NO_INDEX(C IDX_CONNECTOR_UNITID) NO_INDEX(U PK_UNIT) */ C.MOBILE
/
--INDEX_JOIN提示 將一個表的各個不同索引進行合併,這樣只需要訪問這寫索引就行了,節省了重新索引表的時間
1、
SELECT /*+ INDEX_JOIN( BU IDX_BLOG_USER_WEBID IDX_BLOG_USER_BLOGID) */ BLOG_ID ,WEB_ID
FROM BLOG_USER BU
WHERE BLOG_ID=213
AND WEB_ID=235
---==
SELECT STATEMENT,7,1,12,0,0
VIEW--index$_join$_001 (VIEW),7,1,12,0,0
HASH JOIN,0,0,0,0,0
INDEX (RANGE SCAN)--IDX_BLOG_USER_WEBID (INDEX),3,1,12,0,0
INDEX (RANGE SCAN)--IDX_BLOG_USER_BLOGID (INDEX),3,1,12,0,0
比使用索引並通過rowid掃描整個表要快5倍
2、
SELECT BLOG_ID ,WEB_ID
FROM BLOG_USER BU
WHERE BLOG_ID=213
AND WEB_ID=235
SELECT STATEMENT,4,1,12,0,0
TABLE ACCESS (BY INDEX ROWID)--BLOG_USER (TABLE),4,1,12,0,0
INDEX (RANGE SCAN)--IDX_BLOG_USER_WEBID (INDEX),3,1,0,0,0
/
--index_combine合併點陣圖索引
/
--index_asc index_desc 升序掃描索引和降序掃描索引
/
--index_ffs 提示應該執行一次索引的快速全域性掃描。只訪問索引,而不是對應的表,只有查詢需要檢索的資訊都在索引上時才使用索引的快速全域性掃描。特別在表有很多列時,使用該提示可以極大地改善效能。
和index_join有點像啊
ordered 提示會按照具體的順序訪問表
/
--leading提示 當查詢的複雜程度增加時,可以指出先訪問哪一個表,但不可能知道下面將訪問哪個表。
/
---NO_EXPAND
SELECT /*+ FIRST_ROWS NO_EXPAND */ BLOG_ID,WEB_ID
FROM BLOG_USER BU
WHERE PROVINCE=1
AND (BU.BLOG_ID BETWEEN 2341 AND 4561
OR BU.BLOG_ID BETWEEN 43531 AND 53531
OR BU.BLOG_ID BETWEEN 63531 AND 73531
OR BU.BLOG_ID BETWEEN 83531 AND 93531);
0.317秒
/
SELECT BLOG_ID,WEB_ID
FROM BLOG_USER BU
WHERE PROVINCE=1
AND (BU.BLOG_ID BETWEEN 2341 AND 4561
OR BU.BLOG_ID BETWEEN 43531 AND 53531
OR BU.BLOG_ID BETWEEN 63531 AND 73531
OR BU.BLOG_ID BETWEEN 83531 AND 93531);
1秒
/
--driving_site 提示用於處理實際連線的驅動站點
可以將很少行傳送到遠端站點上,而不是將整個遠端表傳送回本地站點來管理
/
--use_merge提示
/
--use_nl提示 使用巢狀迴圈 以最快速度返回第一行
/
--use_hash提示 必須擁有足夠大的hash_area_size
/
--push_subq 提示
/
--parallel提示 並行查詢
SELECT /*+ parallel(BU) */BLOG_ID,WEB_ID
FROM BLOG_USER BU
WHERE PROVINCE=1
AND (BU.BLOG_ID BETWEEN 2341 AND 4561
OR BU.BLOG_ID BETWEEN 43531 AND 53531
OR BU.BLOG_ID BETWEEN 63531 AND 73531
OR BU.BLOG_ID BETWEEN 83531 AND 93531);
/
--no_parallel提示,如果建立表時已經設定了並行度,可以使用這個
/
--append 提示 不會檢查當前是否有插入操作所需要的塊空間,相反它會直接將資料新增到新塊中。
--noappend 提示
/
--cache提示
cache提示會將全表掃描全部快取(固定)到記憶體中,可以在建立表時使用cache選項,這樣在第一次訪問表時就可以對其進行快取
--nocache 提示
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25323853/viewspace-695795/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle效能優化-SQL優化(案例一)Oracle優化SQL
- oracle 效能優化Oracle優化
- Oracle效能優化-SQL優化(案例二)Oracle優化SQL
- Oracle效能優化-SQL優化(案例三)Oracle優化SQL
- Oracle效能優化-SQL優化(案例四)Oracle優化SQL
- Oracle 效能優化-expdp備份速度優化02Oracle優化
- Oracle 效能優化-expdp備份速度優化03Oracle優化
- spark效能優化(一)Spark優化
- Mysql效能優化一MySql優化
- Oracle案例10——HWM(高水位線)效能優化Oracle優化
- Oracle效能優化使用度量和預警Oracle優化
- Oracle SQL效能優化的40條軍規OracleSQL優化
- Oracle效能優化方法論的發展之一:基於區域性命中率分析的效能優化方法Oracle優化
- 【前端效能優化】vue效能優化前端優化Vue
- Oracle效能優化方法論的發展之二:基於OWI的效能優化方法論Oracle優化
- Android效能優化筆記(一)——啟動優化Android優化筆記
- 使用資源管理器優化Oracle效能AQ優化Oracle
- 效能優化漫談之一優化
- Linux效能優化實戰(一)Linux優化
- oracle優化Oracle優化
- Oracle效能優化-資料庫CPU使用率100%Oracle優化資料庫
- 效能優化指南:效能優化的一般性原則與方法優化
- 效能優化優化
- oracle之優化一用group by或exists優化distinctOracle優化
- 【Oracle】Oracle wrong result一則(優化器問題)Oracle優化
- 從一次效能優化看https的效能優化HTTP
- 一次 Flutter WebView 效能優化FlutterWebView優化
- JVM效能優化 (一) 初識JVMJVM優化
- ? 記一次前端效能優化前端優化
- 記一個效能優化問題優化
- 聊一聊前端效能優化 CRP前端優化
- Oracle效能優化方法論的發展之三:基於響應時間分析的效能優化方法論Oracle優化
- oracle 效能最佳化Oracle
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- oracle優化技巧Oracle優化
- oracle EM 優化Oracle優化
- Android效能優化——效能優化的難題總結Android優化
- [效能優化]DateFormatter深度優化探索優化ORM
- 前端效能優化 --- 圖片優化前端優化