oracle 學習筆記---效能優化(6)
21.什麼是STATSPACK,我怎麼使用它?
Statspack是Oracle 8i以上提供的一個非常好的效能監控與診斷工具,基本上全部包含了BSTAT/ESTAT的功能,更多的資訊,可以參考附帶文件$ORACLE_HOME/rdbms/admin/spdoc.txt。
安裝Statspack:
cd $ORACLE_HOME/rdbms/admin
sqlplus "/ as sysdba" @spdrop.sql -- 解除安裝,第一次可以不需要
sqlplus "/ as sysdba" @spcreate.sql -- 需要根據提示輸入表空間名
使用Statspack:
sqlplus perfstat/perfstat
exec statspack.snap; -- 進行資訊收集統計,每次執行都將產生一個快照號
-- 獲得快照牛?匭胍?辛礁鮃隕系目煺眨?拍萇?殺ū?/p>
select SNAP_ID, SNAP_TIME from STATS$SNAPSHOT;
@spreport.sql -- 輸入需要檢視的開始快照號與結束快照號
其他相關指令碼s:
spauto.sql - 利用dbms_job提交一個作業,自動的進行STATPACK的資訊收集統計
sppurge.sql - 清除一段範圍內的統計資訊,需要提供開始快照與結束快照號
sptrunc.sql - 清除(truncate)所有統計資訊
22. SQL語句的優化方法
<1> /*+ALL_ROWS*/
表明對語句塊選擇基於開銷的優化方法,並獲得最佳吞吐量,使資源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
<2>. /*+FIRST_ROWS*/
表明對語句塊選擇基於開銷的優化方法,並獲得最佳響應時間,使資源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
<3>. /*+CHOOSE*/
表明如果資料字典中有訪問表的統計資訊,將基於開銷的優化方法,並獲得最佳的吞吐量;
表明如果資料字典中沒有夢時淼耐臣菩畔?將基於規則開銷的優化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
<4>. /*+RULE*/
表明對語句塊選擇基於規則的優化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
<5>. /*+FULL(TABLE)*/
表明對錶選擇全域性掃描的方法.
例如:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='CCBZZP';
<6>. /*+ROWID(TABLE)*/
提示明確表明對指定表根據ROWID進行訪問.
例如:
SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
AND EMP_NO='CCBZZP';
<7>. /*+CLUSTER(TABLE)*/
提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇物件有效.
例如:
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
<8>. /*+INDEX(TABLE INDEX_NAME)*/
表明對錶選擇索引的掃描方法.
例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX='M';
<9>. /*+INDEX_ASC(TABLE INDEX_NAME)*/
表明對錶選擇索引升序的掃描方法.
例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='CCBZZP';
<10>. /*+INDEX_COMBINE*/
為指定表選擇點陣圖訪問路經,如果INDEX_COMBINE中沒有提供作為引數的索引,將選擇出點陣圖索引的
布林組合方式.
例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
WHERE SAL<5000000 AND HIREDATE
<11>. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
提示明確命令優化器使用索引作為訪問路徑.
例如:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
FROM BSEMPMS WHERE SAL<60000;
<12>. /*+INDEX_DESC(TABLE INDEX_NAME)*/
表明對錶選擇索引降序的掃描方法.
例如:
SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='CCBZZP';
<13>. /*+INDEX_FFS(TABLE INDEX_NAME)*/
對指定的表執行快速全索引掃描,而不是全表掃描的辦法.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TE廣告';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-670215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 學習筆記---效能優化學習(1)Oracle筆記優化
- ORACLE學習筆記--效能優化FAQ。Oracle筆記優化
- oracle 學習筆記---效能優化(1)Oracle筆記優化
- oracle 學習筆記---效能優化(2)Oracle筆記優化
- oracle 學習筆記---效能優化(3)Oracle筆記優化
- oracle 學習筆記---效能優化(4)Oracle筆記優化
- oracle 學習筆記---效能優化(5)Oracle筆記優化
- oracle 學習筆記---效能優化(7)Oracle筆記優化
- Oracle效能優化視訊學習筆記-效能優化概念(一)Oracle優化筆記
- Oracle效能優化視訊學習筆記-效能優化概念(二)Oracle優化筆記
- HTTPS 效能優化學習筆記HTTP優化筆記
- 強烈推薦:ORACLE學習筆記--效能優化(ZT)Oracle筆記優化
- ORACLE效能優化筆記Oracle優化筆記
- Oracle效能優化視訊學習筆記-診斷和調優工具Oracle優化筆記
- ORACLE學習筆記--效能最佳化一Oracle筆記
- ORACLE學習筆記--效能最佳化四Oracle筆記
- ORACLE學習筆記--效能最佳化三Oracle筆記
- ORACLE學習筆記--效能最佳化二Oracle筆記
- Oracle效能優化視訊學習筆記-動態調整SGAOracle優化筆記
- Nginx效能優化(學習筆記二十五)Nginx優化筆記
- iOS學習筆記-TableView效能優化篇1iOS筆記View優化
- iOS學習筆記-TableView效能優化篇2iOS筆記View優化
- Oracle動態效能檢視學習筆記(6)_v$filestatOracle筆記
- 斜率優化學習筆記優化筆記
- mysql優化學習筆記MySql優化筆記
- oracle 學習總結(效能優化)Oracle優化
- Oracle學習筆記(6)——函式Oracle筆記函式
- Mysql 優化(學習筆記二十)MySql優化筆記
- oracle筆記整理13——效能調優之SQL優化Oracle筆記SQL優化
- Web 效能優化筆記Web優化筆記
- Oracle效能優化順序表名稱來選擇最有效的學習筆記Oracle優化筆記
- Oracle效能優化視訊學習筆記-資料庫配置和I/O問題Oracle優化筆記資料庫
- MySQL優化學習筆記之索引MySql優化筆記索引
- MySQL優化學習筆記之explainMySql優化筆記AI
- Android卡頓優化學習筆記Android優化筆記
- Linux 效能優化筆記Linux優化筆記
- Android效能優化 筆記Android優化筆記
- Android效能優化---筆記Android優化筆記