驗證資料庫支援db_file_multiblock_read_count引數的最大值
首先需要明確“db file sequential read”和“db file scattered read”兩種等待事件之間的區別,前者是單塊的順序讀,後者是多塊的一起讀,塊的個數受到db_file_multiblock_read_count的限制,一般是表或索引全掃描的時候會出現大量的“db file scattered read”等待事件,同時還需要關注以下兩點:
1).這兩種等待事件會相伴出現,這是由於區中塊的個數,SGA中已包含部分塊,連結和遷移行,索引條目的維護(INSERT時)導致的。
2).“db file scattered read”等待事件每次讀取塊的個數可能小於db_file_multiblock_read_count的限制值,這是主要是由於區間包含的塊個數和SGA已包含部分塊的原因造成的。
對於全表或全索引掃描來說,總是希望都出現“db file scattered read”等待事件,這樣可以一定程度提高I/O讀的效能,db_file_multiblock_read_count預設的值可能過小,db_file_multiblock_read_count可調整的值受較多因素的影響,透過下面的方法可以檢查當前資料庫環境支援的db_file_multiblock_read_count最大值。
1.建立測試表(會話A)。
2.確定會話A的ORA PID和SPID。
3.啟動10046工具跟蹤會話A(會話B)。
5.檢視測試結果。
資料庫引數db_file_multiblock_read_count的預設值:
檢視F:\APP\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_700.trc檔案的內容:
......
--end--
對於全表或全索引掃描來說,總是希望都出現“db file scattered read”等待事件,這樣可以一定程度提高I/O讀的效能,db_file_multiblock_read_count預設的值可能過小,db_file_multiblock_read_count可調整的值受較多因素的影響,透過下面的方法可以檢查當前資料庫環境支援的db_file_multiblock_read_count最大值。
1.建立測試表(會話A)。
C:\Users\LIUBINGLIN>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期三 11月 14 12:32:03 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> create table db_file_multi (id number primary key,name char(2000));
表已建立。
SQL> begin
2 for i in 1..10000 loop
3 insert into db_file_multi values(i,'db_file_multi'||i);
4 end loop;
5 end;
6 /
PL/SQL 過程已成功完成。
SQL> commit;
提交完成。
2.確定會話A的ORA PID和SPID。
SQL> select pid,spid from v$process where addr=(
2 select paddr from v$session where sid=(
3 select sid from v$mystat where rownum=1));
PID SPID
---------- ------------------------
30 700
3.啟動10046工具跟蹤會話A(會話B)。
C:\Users\LIUBINGLIN>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期三 11月 14 12:37:42 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> oradebug setorapid 30
Oracle pid: 30, Windows thread id: 700, image: ORACLE.EXE (SHAD)
SQL> oradebug event 10046 trace name context forever,level 8
已處理的語句
SQL> oradebug tracefile_name
F:\APP\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_700.trc
4.執行測試過程(會話A)。
4.執行測試過程(會話A)。
SQL> alter session set db_file_multiblock_read_count=1000;
會話已更改。
SQL> select /*+full(a)*/ count(1) from db_file_multi a;
COUNT(1)
----------
10000
5.檢視測試結果。
資料庫引數db_file_multiblock_read_count的預設值:
SQL> show parameter db_file_multi
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_multiblock_read_count integer 28
檢視F:\APP\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_700.trc檔案的內容:
......
WAIT #264101320: nam='db file scattered read' ela= 8221 file#=1 block#=90981 blocks=4 obj#=75753 tim=184163648833
WAIT #264101320: nam='db file scattered read' ela= 9623 file#=1 block#=90992 blocks=16 obj#=75753 tim=184163659036
WAIT #264101320: nam='db file scattered read' ela= 46159 file#=1 block#=91008 blocks=70 obj#=75753 tim=184163706503
WAIT #264101320: nam='db file sequential read' ela= 4815 file#=1 block#=91091 blocks=1 obj#=75753 tim=184163714982
......
從上面的輸出看出,'db file scattered read'讀的塊數已經達到了70,但顯然這不是最大的,可以透過加入db_file_multi測試表更多的資料來檢視測試效果。--end--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-749200/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於資料泵impdp引數驗證(一)
- golang常用庫:欄位引數驗證庫-validatorGolang
- 資料庫的身份驗證方式資料庫
- MySQL資料庫引數MySql資料庫
- Laravel 引數驗證的疑與惑Laravel
- 調整資料庫引數資料庫
- GOLANG Web請求引數驗證GolangWeb
- ThinkPHP 類似 AOP 思想的引數驗證PHP
- 騰訊資料庫tdsql部署與驗證資料庫SQL
- 如何驗證Oracle資料庫中表的型別Oracle資料庫型別
- 驗證資料庫中URL的有效性資料庫
- Pydantic:強大的Python 資料驗證庫Python
- 顯示資料庫所有引數資料庫
- Oracle 資料庫引數調整Oracle資料庫
- Oracle資料庫系統中的引數Oracle資料庫
- Oracle資料庫中的系統引數Oracle資料庫
- gin json binding 引數驗證JSON
- Oracle資料庫資料檔案small file的最大值Oracle資料庫
- 天翼雲RDS資料庫如何修改資料庫引數資料庫
- 關於db_file_multiblock_read_count引數的設定BloC
- oracle 10g的db_file_multiblock_read_count引數Oracle 10gBloC
- Oracle中db_file_multiblock_read_count引數探究OracleBloC
- 資料庫易混淆引數名以及引數檔案啟動資料庫到nomount狀態資料庫
- 關於資料庫管理員的驗證小結資料庫
- Oracle23ai 資料庫的簡單驗證OracleAI資料庫
- Oracle資料庫密碼延遲驗證Oracle資料庫密碼
- 將rac資料庫改為單機資料庫需要修改的引數資料庫
- 關於修改資料庫引數的測試資料庫
- Oracle資料庫系統中的引數(續)Oracle資料庫
- 修改資料庫的NLS_DATE_FORMAT引數資料庫ORM
- DM7修改資料庫引數資料庫
- postgresql資料庫重要引數說明SQL資料庫
- Mysql 5.5 設定資料庫引數MySql資料庫
- MySQL 5.7資料庫引數優化MySql資料庫優化
- Nagios資料庫引數配置分析iOS資料庫
- jsonlint:python的json資料驗證庫JSONPython
- 基於外部OS驗證的資料庫使用者資料庫
- 【Oracle 12c資料庫支援閃回庫功能】實驗Oracle資料庫