[20181109]12c sqlplus rowprefetch引數5.txt
[20181109]12c sqlplus rowprefetch引數5.txt
--//這幾天一直在探究設定sqlplus引數rowprefetch與arraysize的關係,有必要做一些總結以及一些小更正:
1.設定rowprefetch < arraysize 的情況最佳,因為這樣fetch的模式是
rowprefetch,arraysize,arraysize,,...,剩下的記錄.
--//比較符合需要的情況.
2.不建議設定rowprefetch >= arraysize的情況.因為這樣改變fetch的模式.
rowprefetch,(floor(rowprefetch/arraysize)+1)*arraysize,(floor(rowprefetch/arraysize)+1)*arraysize,...,剩下的記錄.
3.補充一點做1點點小小的更正.
--//計算公式不是ceil(rowprefetch/arraysize)*arraysize,而是(floor(rowprefetch/arraysize)+1)*arraysize.
--//這樣對於rowprefetch < arraysize該公式也適用.
4.補充例子說明:
--//測試 rowprefetch = arraysize的情況
SCOTT@78> @ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
--//資料庫11.2.0.4.但是我使用12c sqlplus做為客戶端,rowprefetch引數可以設定,測試一樣有效.
SCOTT@78>create table t as select rownum id1,1 id2 from dual connect by level<=23;
Table created.
grant EXECUTE ON dbms_lock to scott;
CREATE OR REPLACE FUNCTION SCOTT.sleep (seconds IN NUMBER)
RETURN NUMBER
AS
BEGIN
sys.DBMS_LOCK.sleep (seconds);
RETURN seconds;
END;
/
R:> cat aa.txt
set timing on
set arraysize &1
set rowprefetch &2
alter session set events '10046 trace name context forever, level 12';
select rownum ,t.*,sleep(id2) n10,&&1 arraysize ,&&2 rowprefetch from t;
--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
--//執行指令碼時,第1個參數列示arraysize,第2個參數列示rowprefetch.
SCOTT@78> @ aa.txt 5 5
Session altered.
$ grep FETCH /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_22631.trc | grep plh=2402761124
FETCH #140395096751240:c=0,e=5005000,p=0,cr=3,cu=0,mis=0,r=5,dep=0,og=1,plh=2402761124,tim=1541729295424586
FETCH #140395096751240:c=2000,e=10010448,p=0,cr=1,cu=0,mis=0,r=10,dep=0,og=1,plh=2402761124,tim=1541729305494803
FETCH #140395096751240:c=1000,e=8007876,p=0,cr=1,cu=0,mis=0,r=8,dep=0,og=1,plh=2402761124,tim=1541729313586610
--//fetch 5,10,8. 而顯示行數5,10,8.
--//也就是rowprefetch=arraysize,第2次fetch是 2*arraysize.
--//這樣上面的公式也滿足要求.(floor(rowprefetch/arraysize)+1)*arraysize
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2219334/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181109]12c sqlplus rowprefetch引數5SQL
- [20181108]12c sqlplus rowprefetch引數4.txtSQL
- [20181106]12c sqlplus rowprefetch引數3.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
- [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索引巢狀
- Swift學習筆記(三十三)——常量引數,變數引數和inout引數Swift筆記變數