[20181106]12c sqlplus rowprefetch引數3.txt
[20181106]12c sqlplus rowprefetch引數3.txt
--//12cR2 可以改變預設rowprefetch引數.11g之前預設是1.透過一些測試說明問題.
1.環境:
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
SCOTT@test01p> show rowprefetch
rowprefetch 1
--//可以發現預設就是1.11g之前無法設定.
--//另外rowprefetch不能設定為0.
SCOTT@78> set rowprefetch 0
SP2-0267: rowprefetch option 0 out of range (1 through 32767)
grant EXECUTE ON dbms_lock to scott;
CREATE OR REPLACE FUNCTION get_dept (p_deptno dept.deptno%TYPE)
RETURN dept.dname%TYPE
DETERMINISTIC
IS
l_dname dept.dname%TYPE;
BEGIN
DBMS_LOCK.sleep (1);
SELECT dname
INTO l_dname
FROM dept
WHERE deptno = p_deptno;
RETURN l_dname;
END;
/
CREATE OR REPLACE FUNCTION SCOTT.sleep (seconds IN NUMBER)
RETURN NUMBER
AS
BEGIN
sys.DBMS_LOCK.sleep (seconds);
RETURN seconds;
END;
/
2.建立測試指令碼:
--//確定轉儲檔案略。
SCOTT@test01p> @pp
TRACEFILE
----------------------------------------------------------
D:\APP\ORACLE\diag\rdbms\test\test\trace\test_ora_4696.trc
--//建立測試指令碼:
--//aa.txt
set timing on
set arraysize &1
set rowprefetch &2
alter session set events '10046 trace name context forever, level 12';
select rownum ,emp.*,get_dept(deptno) c10,&&1 arraysize ,&&2 rowprefetch from emp;
alter session set events '10046 trace name context off';
set timing off
--//分別執行如下bb.txt:
@ aa.txt 5 1
@ aa.txt 5 2
@ aa.txt 5 3
@ aa.txt 5 4
@ aa.txt 5 5
@ aa.txt 5 6
@ aa.txt 5 7
@ aa.txt 5 8
@ aa.txt 5 9
@ aa.txt 5 10
@ aa.txt 5 11
@ aa.txt 5 12
@ aa.txt 5 13
@ aa.txt 5 14
@ aa.txt 5 15
--//我使用----分開。
d:\>grep "plh=1498225739" D:\APP\ORACLE\diag\rdbms\test\test\trace\test_ora_4696.trc | grep "FETCH"
FETCH #161315584:c=0,e=1009200,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=1,plh=1498225739,tim=6757881731
FETCH #161315584:c=0,e=1999313,p=0,cr=5,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6759887687
FETCH #161315584:c=15600,e=3003068,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6762891906
FETCH #161315584:c=0,e=3001084,p=0,cr=10,cu=0,mis=0,r=3,dep=0,og=1,plh=1498225739,tim=6765893526
----
FETCH #161689480:c=0,e=1998000,p=0,cr=8,cu=0,mis=0,r=2,dep=0,og=1,plh=1498225739,tim=6767908274
FETCH #161689480:c=15600,e=3002196,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6770913580
FETCH #161689480:c=0,e=2998619,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6773912782
FETCH #161689480:c=0,e=1998639,p=0,cr=8,cu=0,mis=0,r=2,dep=0,og=1,plh=1498225739,tim=6775911957
----
FETCH #161689480:c=0,e=1999140,p=0,cr=8,cu=0,mis=0,r=3,dep=0,og=1,plh=1498225739,tim=6777920935
FETCH #161689480:c=15600,e=3001413,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6780926027
FETCH #161689480:c=0,e=2998129,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6783924786
FETCH #161689480:c=0,e=999625,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=1,plh=1498225739,tim=6784925189
----
FETCH #161689480:c=0,e=1998143,p=0,cr=8,cu=0,mis=0,r=4,dep=0,og=1,plh=1498225739,tim=6786930245
FETCH #161689480:c=0,e=3000067,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6789933340
FETCH #161689480:c=0,e=2997676,p=0,cr=7,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6792931596
FETCH #161689480:c=0,e=29,p=0,cr=3,cu=0,mis=0,r=0,dep=0,og=1,plh=1498225739,tim=6792932166
----
FETCH #33162208:c=0,e=2002008,p=0,cr=8,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6794943158
FETCH #33162208:c=0,e=3012994,p=0,cr=10,cu=0,mis=0,r=9,dep=0,og=1,plh=1498225739,tim=6797959770
----
FETCH #33162208:c=0,e=2000316,p=0,cr=8,cu=0,mis=0,r=6,dep=0,og=1,plh=1498225739,tim=6799977070
FETCH #33162208:c=0,e=2998486,p=0,cr=10,cu=0,mis=0,r=8,dep=0,og=1,plh=1498225739,tim=6802978947
----
FETCH #33162208:c=15601,e=3004012,p=0,cr=10,cu=0,mis=0,r=7,dep=0,og=1,plh=1498225739,tim=6806009715
FETCH #33162208:c=0,e=2998099,p=0,cr=10,cu=0,mis=0,r=7,dep=0,og=1,plh=1498225739,tim=6809011284
----
FETCH #33162208:c=0,e=2998413,p=0,cr=10,cu=0,mis=0,r=8,dep=0,og=1,plh=1498225739,tim=6812022392
FETCH #33162208:c=0,e=2997879,p=0,cr=10,cu=0,mis=0,r=6,dep=0,og=1,plh=1498225739,tim=6815024740
----
FETCH #33162208:c=0,e=2999262,p=0,cr=10,cu=0,mis=0,r=9,dep=0,og=1,plh=1498225739,tim=6818046984
FETCH #33162208:c=0,e=2997424,p=0,cr=10,cu=0,mis=0,r=5,dep=0,og=1,plh=1498225739,tim=6821047792
----
FETCH #33162208:c=0,e=2999506,p=0,cr=10,cu=0,mis=0,r=10,dep=0,og=1,plh=1498225739,tim=6824057849
FETCH #33162208:c=0,e=2999211,p=0,cr=10,cu=0,mis=0,r=4,dep=0,og=1,plh=1498225739,tim=6827061343
----
FETCH #33162208:c=15600,e=3031951,p=0,cr=10,cu=0,mis=0,r=11,dep=0,og=1,plh=1498225739,tim=6830128155
FETCH #33162208:c=0,e=2997636,p=0,cr=10,cu=0,mis=0,r=3,dep=0,og=1,plh=1498225739,tim=6833129328
----
FETCH #33162208:c=0,e=3012728,p=0,cr=10,cu=0,mis=0,r=12,dep=0,og=1,plh=1498225739,tim=6836158511
FETCH #33162208:c=0,e=1999216,p=0,cr=8,cu=0,mis=0,r=2,dep=0,og=1,plh=1498225739,tim=6838161474
----
FETCH #33162208:c=0,e=3009873,p=0,cr=10,cu=0,mis=0,r=13,dep=0,og=1,plh=1498225739,tim=6841178435
FETCH #33162208:c=0,e=999882,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=1,plh=1498225739,tim=6842181712
----
FETCH #33162208:c=0,e=3000846,p=0,cr=10,cu=0,mis=0,r=14,dep=0,og=1,plh=1498225739,tim=6845211650
FETCH #33162208:c=0,e=33,p=0,cr=3,cu=0,mis=0,r=0,dep=0,og=1,plh=1498225739,tim=6845215320
----
FETCH #30590696:c=0,e=2999696,p=0,cr=13,cu=0,mis=0,r=14,dep=0,og=1,plh=1498225739,tim=7067691416
--//d:\>grep "plh=1498225739" D:\APP\ORACLE\diag\rdbms\test\test\trace\test_ora_4696.trc | grep "FETCH" | cut -d"=" -f8 | cut -d"," -f1
3.將統計資訊做一個表格:
arraysize rowprefetch 顯示行數順序 執行時間 fetch的順序
------------------------------------------------- -----------
5 1 5,5,4 00:00:09.03 1 5 5 3
5 2 5,5,4 00:00:10.00 2 5 5 2
5 3 5,5,4 00:00:09.01 3 5 5 1
5 4 5,9 00:00:08.01 4 5 5 0
5 5 5,9 00:00:05.00 5 9
5 6 5,9 00:00:05.01 6 8
5 7 5,9 00:00:06.00 7 7
5 8 5,9 00:00:06.00 8 6
5 9 5,9 00:00:06.00 9 5
5 10 10,4 00:00:06.00 10 4
5 11 10,4 00:00:06.00 11 3
5 12 10,4 00:00:05.00 12 2
5 13 10,4 00:00:04.00 13 1
5 14 14 00:00:03.01 14 0
5 15 14 00:00:03.01 14
------------------------------------------------- -----------
--//可以看出一些規律:
--//1.fetch 第1次數量與引數rowprefetch相關,當然如果返回記錄小於記錄數量.
--//2.顯示行數一般都是array的倍數(與rowprefetch也有關).
--//3.問題在於arraysize=5,rowprefetch=4時,顯示行數順序5,9.不好解析..
--//這東西寫出來很難表達,大家自己理解吧.
--//arraysize=5,rowprefetch=4時,為什麼顯示行數順序是5,9而不是5,5,4.
--//我感覺第2次fetch是連續fetch2次.如果第3次fetch等於arraysize,僅僅第2次fetch的5條條進入輸出快取(我的理解).
--//如果如果第3次fetch小於arraysize,也就是fetch沒有剩餘記錄了,顯示全部輸出.
arraysize rowprefetch 顯示行數順序 執行時間 fetch的順序
------------------------------------------------- -----------
3 6 6,8 00:00:05.16 6,8
--//不好理解放棄!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2219004/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181109]12c sqlplus rowprefetch引數5SQL
- [20181109]12c sqlplus rowprefetch引數5.txtSQL
- [20181108]12c sqlplus rowprefetch引數4.txtSQL
- [20200824]12c sqlplus rowprefetch arraysize 顯示行數量的關係.txtSQL
- 【Oracle】-【sqlplus相關】-serveroutput引數OracleSQLServer
- Oracle sqlplus prelim 引數介紹OracleSQL
- shell程式引數傳遞給sqlplusSQL
- oracle 升級12c引數樣例Oracle
- 12c linux 安裝引數配置Linux
- sqlplus中arrayseize引數以及consistent getsSQL
- oracle11g sqlplus引數autocommitOracleSQLMIT
- oracle之 sqlplus prelim 引數介紹 ( 處理hang )OracleSQL
- Oracle sqlplus引數autocommit(自動提交)的設定OracleSQLMIT
- Oracle 12C 中CDB和PDB的引數檔案管理Oracle
- Oracle 12c新特性:IN-Memory Option - 快取與引數Oracle快取
- Oracle 12C新特性-資料泵新引數(LOGTIME)Oracle
- Oracle 12C新特性-資料泵新引數(VIEWS_AS_TABLES)OracleView
- 12C關於CDB、PDB引數的區別和總結
- Oracle 12c 多租戶配置和修改 CDB 和 PDB 引數Oracle
- Oracle通過login.sql實現永久修改sqlplus引數OracleSQL
- Oracle 12c中db_file_multiblock_read_count 引數引發的效能問題OracleBloC
- [20190110]rlwrap sqlplus tee相關問題3.txtSQL
- [20131108]sqlplus引數NUMWIDTH.txtSQL
- kettle 引數——變數引數和常量引數變數
- Oracle 12C 新特性之 sqlplus檢視History命令OracleSQL
- Oracle 隱藏引數(9i,10g,11g,12c)Oracle
- sqlplus在使用EOF時不顯示命令方法-引數-S靜默方式SQL
- 在sqlplus中呼叫in out輸入輸出引數的儲存過程SQL儲存過程
- [20130814]12c sqlplus.txtSQL
- Oracle引數-隱藏引數Oracle
- 12c data guard 使用 sqlplus 主備切換最佳實踐SQL
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- c# 方法引數_值引數C#
- c# 方法引數_引用引數C#
- 動態引數,靜態引數
- C#中的值引數,引用引數及輸出引數C#
- sqlplus呼叫包package中輸入引數為plsql索引表和plsql巢狀表示例SQLPackage索引巢狀