[20200824]12c sqlplus rowprefetch arraysize 顯示行數量的關係.txt
[20200824]12c sqlplus rowprefetch arraysize 顯示行數量的關係.txt
--//以前寫的:
[20181108]12c sqlplus rowprefetch引數4.txt => http://blog.itpub.net/267265/viewspace-2219260/
[20181109]12c sqlplus rowprefetch引數5.txt => http://blog.itpub.net/267265/viewspace-2219334/
--//別人問測試一些細節問題,說真的當時測試完成就再沒關注這個問題,這種問題對於實際應用根本不重要.前臺應用不會使用
--//sqlplus.
1.fetch規律:
--//我當時測試總結一些規律:
--//1.fetch 第1次數量等於rowprefetch.當然必須小於返回記錄的數量.
--//2.fetch 第X次數量(X>=2)與引數arraysize的倍數N有關. N=floor(rowprefetch/arraysize+1), 等於N*arraysize.
--//3.fetch 最後一次應該等於剩餘記錄.不會大於floor(rowprefetch/arraysize+1)*arraysize.
--//4.fetch 最後一次有可能是0.
--//也就是fetch的順序:
rowprefetch,(floor(rowprefetch/arraysize)+1)*arraysize,(floor(rowprefetch/arraysize)+1)*arraysize,...,剩下的記錄.
--//注:我當時測試時忽略了rowprefetch=arraysize的情況.使用floor代替ceil才是正確的.
2.顯示行數量規律:
--//而顯示記錄時看到的情況並不對應fetch的記錄數量.以前的分析有誤.僅僅需要記住幾點點,我自己的總結:
--//1.顯示輸出行數 第1次 floor(rowprefetch/arraysize)*arraysize.
--//注:.如果rowprefetch < arraysize,第1次fetch後,不足arraysize數量.不會馬上輸出,而是等待下一個fetch完成,再輸出.
--//2.顯示輸出行數 第Y次(Y>=2) floor((前次剩下的記錄+本次fetch的記錄)/arraysize)*arraysize.
--//注:因為前次剩下的記錄小於arraysize,這樣顯示輸出行數=floor(rowprefetch/arraysize+1)*arraysize.
--//3.顯示輸出行數 最後1次比較特殊,是全部輸出.判斷這個依據是最後fetch的數量<(floor(rowprefetch/arraysize)+1)*arraysize,
--// 表示已沒有記錄需要fetch.
--//透過下面例子說明:
3.再做一個測試說明問題:
SYS@test> @ 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
create table t as select rownum id1,1 id2 from dual connect by level<=23;
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;
/
$ 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;
alter session set events '10046 trace name context off';
set timing off
quit
$ cat ~/bin/ts.awk
#! /bin/bash
awk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'
$ sqlplus -s -l scott/btbtms@test01p @ aa.txt 2 7 | ~/bin/ts.awk
[2020-08-24 20:31:25]
[2020-08-24 20:31:25] Session altered.
[2020-08-24 20:31:25]
[2020-08-24 20:31:25] Elapsed: 00:00:00.01
[2020-08-24 20:31:25] old 1: select rownum,t.*,sleep(id2) n10,&&1 arraysize ,&&2 rowprefetch from t
[2020-08-24 20:31:25] new 1: select rownum,t.*,sleep(id2) n10,2 arraysize ,7 rowprefetch from t
[2020-08-24 20:31:32]
[2020-08-24 20:31:32] ROWNUM ID1 ID2 N10 ARRAYSIZE ROWPREFETCH
[2020-08-24 20:31:32] ------ ---- ---- ---- ---------- -----------
[2020-08-24 20:31:32] 1 1 1 1 2 7
[2020-08-24 20:31:32] 2 2 1 1 2 7
[2020-08-24 20:31:32] 3 3 1 1 2 7
[2020-08-24 20:31:32] 4 4 1 1 2 7
[2020-08-24 20:31:32] 5 5 1 1 2 7
[2020-08-24 20:31:32] 6 6 1 1 2 7
[2020-08-24 20:31:40] 7 7 1 1 2 7
[2020-08-24 20:31:40] 8 8 1 1 2 7
[2020-08-24 20:31:40] 9 9 1 1 2 7
[2020-08-24 20:31:40] 10 10 1 1 2 7
[2020-08-24 20:31:40] 11 11 1 1 2 7
[2020-08-24 20:31:40] 12 12 1 1 2 7
[2020-08-24 20:31:40] 13 13 1 1 2 7
[2020-08-24 20:31:40] 14 14 1 1 2 7
[2020-08-24 20:31:48] 15 15 1 1 2 7
[2020-08-24 20:31:48] 16 16 1 1 2 7
[2020-08-24 20:31:48] 17 17 1 1 2 7
[2020-08-24 20:31:48] 18 18 1 1 2 7
[2020-08-24 20:31:48] 19 19 1 1 2 7
[2020-08-24 20:31:48] 20 20 1 1 2 7
[2020-08-24 20:31:48] 21 21 1 1 2 7
[2020-08-24 20:31:48] 22 22 1 1 2 7
[2020-08-24 20:31:48] 23 23 1 1 2 7
[2020-08-24 20:31:48]
[2020-08-24 20:31:48] 23 rows selected.
[2020-08-24 20:31:48]
[2020-08-24 20:31:48] Elapsed: 00:00:23.03
[2020-08-24 20:31:48]
[2020-08-24 20:31:48] Session altered.
[2020-08-24 20:31:48]
[2020-08-24 20:31:48] Elapsed: 00:00:00.00
--//注意看前面的時間戳,可以發現輸出時間間隔7,8,8秒.顯示輸出行數6,8,9.
$ grep "FETCH" test_ora_7992.trc | grep "#451109600"
FETCH #451109600:c=0,e=6994268,p=0,cr=7,cu=2,mis=0,r=7,dep=0,og=1,plh=2402761124,tim=1748148741
FETCH #451109600:c=0,e=7993084,p=0,cr=1,cu=0,mis=0,r=8,dep=0,og=1,plh=2402761124,tim=1756146829
FETCH #451109600:c=0,e=7992326,p=0,cr=1,cu=0,mis=0,r=8,dep=0,og=1,plh=2402761124,tim=1764140167
FETCH #451109600:c=0,e=17,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2402761124,tim=1764141275
--//注意看r=??,fetch 7,8,8,0. 而顯示輸出行數6,8,9.
--//你可以發現第2次fetch不再等於arraysize,而是4*arraysize=8.
--//最後出現最後一次fetch r=0的情況,實際上顯示行數是6,8,8,1,為什麼看上去是顯示9,因為最後1次fetch是0,消耗時間很小.
--//這樣感覺上輸出9,這也是對方感覺困惑的主要原因.
--//可以這樣理解: arraysize = 2,rowprefetch=7
--//第1次fetch 7,而arraysize=2,這樣顯示輸出floor(rowprefetch/arraysize)*arraysize=floor(7/2)*2=6.剩下1條.
--//第2次fetch 8,顯示輸出floor((8+1)/2)*2=8,還是剩下1條.
--//第3次fetch 8,顯示輸出floor((8+1)/2)*2=8,還是剩下1條.
--//第4次fetch 0,全部輸出,剩下的1行.由於fetch等於0,這次會很快.
--//實際顯示輸出的是:6,8,8,1.
--//如果最後1次不是fetch=0,看到的情況如下:
$ sqlplus -s -l scott/btbtms@test01p @ aa.txt 5 4 | ~/bin/ts.awk
[2020-08-24 21:04:12]
[2020-08-24 21:04:12] Session altered.
[2020-08-24 21:04:12]
[2020-08-24 21:04:12] Elapsed: 00:00:00.00
[2020-08-24 21:04:12] old 1: select rownum,t.*,sleep(id2) n10,&&1 arraysize ,&&2 rowprefetch from t
[2020-08-24 21:04:12] new 1: select rownum,t.*,sleep(id2) n10,5 arraysize ,4 rowprefetch from t
[2020-08-24 21:04:21]
[2020-08-24 21:04:21] ROWNUM ID1 ID2 N10 ARRAYSIZE ROWPREFETCH
[2020-08-24 21:04:21] ------ ---- ---- ---- ---------- -----------
[2020-08-24 21:04:21] 1 1 1 1 5 4
[2020-08-24 21:04:21] 2 2 1 1 5 4
[2020-08-24 21:04:21] 3 3 1 1 5 4
[2020-08-24 21:04:21] 4 4 1 1 5 4
[2020-08-24 21:04:21] 5 5 1 1 5 4
[2020-08-24 21:04:26] 6 6 1 1 5 4
[2020-08-24 21:04:26] 7 7 1 1 5 4
[2020-08-24 21:04:26] 8 8 1 1 5 4
[2020-08-24 21:04:26] 9 9 1 1 5 4
[2020-08-24 21:04:26] 10 10 1 1 5 4
[2020-08-24 21:04:31] 11 11 1 1 5 4
[2020-08-24 21:04:31] 12 12 1 1 5 4
[2020-08-24 21:04:31] 13 13 1 1 5 4
[2020-08-24 21:04:31] 14 14 1 1 5 4
[2020-08-24 21:04:31] 15 15 1 1 5 4
[2020-08-24 21:04:35] 16 16 1 1 5 4
[2020-08-24 21:04:35] 17 17 1 1 5 4
[2020-08-24 21:04:35] 18 18 1 1 5 4
[2020-08-24 21:04:35] 19 19 1 1 5 4
[2020-08-24 21:04:35] 20 20 1 1 5 4
[2020-08-24 21:04:35] 21 21 1 1 5 4
[2020-08-24 21:04:35] 22 22 1 1 5 4
[2020-08-24 21:04:35] 23 23 1 1 5 4
[2020-08-24 21:04:35]
[2020-08-24 21:04:35] 23 rows selected.
[2020-08-24 21:04:35]
[2020-08-24 21:04:35] Elapsed: 00:00:23.20
[2020-08-24 21:04:35]
[2020-08-24 21:04:35] Session altered.
[2020-08-24 21:04:35]
[2020-08-24 21:04:35] Elapsed: 00:00:00.00
--//注意看前面的時間戳,可以發現輸出時間間隔9,5,5,4秒.
--//顯示行數:5,5,5,8.
$ grep "FETCH" test_ora_7712.trc | grep "#201226544"
FETCH #201226544:c=78000,e=4070787,p=0,cr=467,cu=2,mis=0,r=4,dep=0,og=1,plh=2402761124,tim=3712159663
FETCH #201226544:c=0,e=4995743,p=0,cr=1,cu=0,mis=0,r=5,dep=0,og=1,plh=2402761124,tim=3717161694
FETCH #201226544:c=0,e=4995417,p=0,cr=1,cu=0,mis=0,r=5,dep=0,og=1,plh=2402761124,tim=3722158913
FETCH #201226544:c=0,e=4995747,p=0,cr=1,cu=0,mis=0,r=5,dep=0,og=1,plh=2402761124,tim=3727156131
FETCH #201226544:c=0,e=3996706,p=0,cr=1,cu=0,mis=0,r=4,dep=0,og=1,plh=2402761124,tim=3731154321
--//可以這樣理解: arraysize = 5,rowprefetch=4
--//第1次fetch 4,而arraysize=5,不足arraisize數量不會輸出.
--//第2次fetch 5,floor((5+4)/5)*5=5,輸出5行,還剩下4行.這也是為什麼第1個時間間隔是9秒的原因.
--//第3次fetch 5,floor((5+4)/5)*5=5,輸出5行,還剩下4行.
--//第4次fetch 4,需要4秒完成fetch對應前面最後的時間間隔是4秒,全部輸出 4+4=8.
--//再做1個特殊情況,ROWPREFETCH正好整除ARRAYSIZE的情況:
$ sqlplus -s -l scott/btbtms@test01p @ aa.txt 2 6 | ~/bin/ts.awk
[2020-08-24 21:11:58]
[2020-08-24 21:11:58] Session altered.
[2020-08-24 21:11:58]
[2020-08-24 21:11:58] Elapsed: 00:00:00.00
[2020-08-24 21:11:58] old 1: select rownum,t.*,sleep(id2) n10,&&1 arraysize ,&&2 rowprefetch from t
[2020-08-24 21:11:58] new 1: select rownum,t.*,sleep(id2) n10,2 arraysize ,6 rowprefetch from t
[2020-08-24 21:12:04]
[2020-08-24 21:12:04] ROWNUM ID1 ID2 N10 ARRAYSIZE ROWPREFETCH
[2020-08-24 21:12:04] ------ ---- ---- ---- ---------- -----------
[2020-08-24 21:12:04] 1 1 1 1 2 6
[2020-08-24 21:12:04] 2 2 1 1 2 6
[2020-08-24 21:12:04] 3 3 1 1 2 6
[2020-08-24 21:12:04] 4 4 1 1 2 6
[2020-08-24 21:12:04] 5 5 1 1 2 6
[2020-08-24 21:12:04] 6 6 1 1 2 6
[2020-08-24 21:12:12] 7 7 1 1 2 6
[2020-08-24 21:12:12] 8 8 1 1 2 6
[2020-08-24 21:12:12] 9 9 1 1 2 6
[2020-08-24 21:12:12] 10 10 1 1 2 6
[2020-08-24 21:12:12] 11 11 1 1 2 6
[2020-08-24 21:12:12] 12 12 1 1 2 6
[2020-08-24 21:12:12] 13 13 1 1 2 6
[2020-08-24 21:12:12] 14 14 1 1 2 6
[2020-08-24 21:12:20] 15 15 1 1 2 6
[2020-08-24 21:12:20] 16 16 1 1 2 6
[2020-08-24 21:12:20] 17 17 1 1 2 6
[2020-08-24 21:12:20] 18 18 1 1 2 6
[2020-08-24 21:12:20] 19 19 1 1 2 6
[2020-08-24 21:12:20] 20 20 1 1 2 6
[2020-08-24 21:12:20] 21 21 1 1 2 6
[2020-08-24 21:12:20] 22 22 1 1 2 6
[2020-08-24 21:12:21] 23 23 1 1 2 6
[2020-08-24 21:12:21]
[2020-08-24 21:12:21] 23 rows selected.
[2020-08-24 21:12:21]
[2020-08-24 21:12:21] Elapsed: 00:00:23.03
[2020-08-24 21:12:21]
[2020-08-24 21:12:21] Session altered.
[2020-08-24 21:12:21]
[2020-08-24 21:12:21] Elapsed: 00:00:00.00
--//時間間隔:6,8,8,1
--//顯示行數:6,8,8,1.
$ grep "FETCH" test_ora_4344.trc | grep "#201597384"
FETCH #201597384:c=0,e=6007379,p=0,cr=56,cu=2,mis=0,r=6,dep=0,og=1,plh=2402761124,tim=4180072163
FETCH #201597384:c=0,e=7998394,p=0,cr=1,cu=0,mis=0,r=8,dep=0,og=1,plh=2402761124,tim=4188072679
FETCH #201597384:c=0,e=8000802,p=0,cr=1,cu=0,mis=0,r=8,dep=0,og=1,plh=2402761124,tim=4196074146
FETCH #201597384:c=0,e=999593,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=2402761124,tim=4197074434
--//fetch 6,8,8,1.
--//可以這樣理解: arraysize = 2,rowprefetch=6
--//第1次fetch 6,而arraysize=2, floor(rowprefetch/arraysize)*arraysize=floor(6/2)*2=6.顯示輸出6行.剩下0條.
--//第2次fetch 8,(floor(8+0)/2)*2=8,顯示輸出8行.剩下0條.
--//第3次fetch 8,(floor(8+0)/2)*2=8,顯示輸出8行.剩下0條.
--//第4次fetch 1 ,需要1秒完成fetch對應前面最後的時間間隔是1秒,全部輸出1.
--//你可以使用下面的sleept函式替換指令碼aa.txt裡面的sleep函式.
CREATE OR REPLACE FUNCTION SCOTT.sleepT (seconds IN NUMBER)
RETURN timestamp
AS
BEGIN
sys.DBMS_LOCK.sleep (seconds);
RETURN SYSTIMESTAMP-1/86400;
END;
/
$ cat ba.txt
set timing on
set arraysize &1
set rowprefetch &2
alter session set events '10046 trace name context forever, level 12';
select rownum,t.*,sleept(id2) n10,&&1 arraysize ,&&2 rowprefetch from t;
alter session set events '10046 trace name context off';
set timing off
quit
$ sqlplus -s -l scott/btbtms@test01p @ ba.txt 7 7 | ~/bin/ts.awk
[2020-08-25 20:22:00]
[2020-08-25 20:22:00] Session altered.
[2020-08-25 20:22:00]
[2020-08-25 20:22:00] Elapsed: 00:00:00.00
[2020-08-25 20:22:00] old 1: select rownum,t.*,sleept(id2) n10,&&1 arraysize ,&&2 rowprefetch from t
[2020-08-25 20:22:00] new 1: select rownum,t.*,sleept(id2) n10,7 arraysize ,7 rowprefetch from t
[2020-08-25 20:22:07]
[2020-08-25 20:22:07] ROWNUM ID1 ID2 N10 ARRAYSIZE ROWPREFETCH
[2020-08-25 20:22:07] ------ ---- ---- ----------------------------- --------- -----------
[2020-08-25 20:22:07] 1 1 1 2020-08-25 20:22:00.000000000 7 7
[2020-08-25 20:22:07] 2 2 1 2020-08-25 20:22:01.000000000 7 7
[2020-08-25 20:22:07] 3 3 1 2020-08-25 20:22:02.000000000 7 7
[2020-08-25 20:22:07] 4 4 1 2020-08-25 20:22:03.000000000 7 7
[2020-08-25 20:22:07] 5 5 1 2020-08-25 20:22:04.000000000 7 7
[2020-08-25 20:22:07] 6 6 1 2020-08-25 20:22:05.000000000 7 7
[2020-08-25 20:22:07] 7 7 1 2020-08-25 20:22:06.000000000 7 7
[2020-08-25 20:22:21] 8 8 1 2020-08-25 20:22:07.000000000 7 7
[2020-08-25 20:22:21] 9 9 1 2020-08-25 20:22:08.000000000 7 7
[2020-08-25 20:22:21] 10 10 1 2020-08-25 20:22:09.000000000 7 7
[2020-08-25 20:22:21] 11 11 1 2020-08-25 20:22:10.000000000 7 7
[2020-08-25 20:22:21] 12 12 1 2020-08-25 20:22:11.000000000 7 7
[2020-08-25 20:22:21] 13 13 1 2020-08-25 20:22:12.000000000 7 7
[2020-08-25 20:22:21] 14 14 1 2020-08-25 20:22:13.000000000 7 7
[2020-08-25 20:22:21] 15 15 1 2020-08-25 20:22:14.000000000 7 7
[2020-08-25 20:22:21] 16 16 1 2020-08-25 20:22:15.000000000 7 7
[2020-08-25 20:22:21] 17 17 1 2020-08-25 20:22:16.000000000 7 7
[2020-08-25 20:22:21] 18 18 1 2020-08-25 20:22:17.000000000 7 7
[2020-08-25 20:22:21] 19 19 1 2020-08-25 20:22:18.000000000 7 7
[2020-08-25 20:22:21] 20 20 1 2020-08-25 20:22:19.000000000 7 7
[2020-08-25 20:22:21] 21 21 1 2020-08-25 20:22:20.000000000 7 7
[2020-08-25 20:22:23] 22 22 1 2020-08-25 20:22:21.000000000 7 7
[2020-08-25 20:22:23] 23 23 1 2020-08-25 20:22:22.000000000 7 7
[2020-08-25 20:22:23]
[2020-08-25 20:22:23] 23 rows selected.
[2020-08-25 20:22:23]
[2020-08-25 20:22:23] Elapsed: 00:00:23.00
[2020-08-25 20:22:23]
[2020-08-25 20:22:23] Session altered.
[2020-08-25 20:22:23]
[2020-08-25 20:22:23] Elapsed: 00:00:00.00
--//時間間隔:7,14,2
--//顯示行數:7,14,2.
$ grep "FETCH" test_ora_4444.trc | grep 45247739
FETCH #452477392:c=15600,e=7003344,p=0,cr=30,cu=2,mis=0,r=7,dep=0,og=1,plh=2402761124,tim=2850476765
FETCH #452477392:c=0,e=13988663,p=0,cr=1,cu=0,mis=0,r=14,dep=0,og=1,plh=2402761124,tim=2864469452
FETCH #452477392:c=0,e=1999838,p=0,cr=1,cu=0,mis=0,r=2,dep=0,og=1,plh=2402761124,tim=2866471508
--//不再展開分析.
4.總結:
--//實際上這其中細節不重要,你可以理解改變12c下改變sqlplus的rowprefetch引數,有可能隱含改變了fetch方式與數量.
--//第1次fetch = rowpefetch, 第2次 fetch 等於 (floor(rowprefetch/arraysize)+1)*arraysize.
--//個人建議還是不要設定rowprefetch >= arraysize的情況.因為這樣改變fetch的模式.
--//顯示輸出 : floor(rowprefetch/arraysize)*arraysize,floor(rowprefetch/arraysize+1)*arraysize, ...,剩下的記錄.
--//注:fetch在前,輸出在後.
--// 如果rowprefetch < arraysize,第1次fetch後,不足arraysize數量.不會馬上輸出,而是等待下一個fetch完成,再輸出.
5.補充:
--//另外我還找到一個連結,結論跟我的測試一樣,表述的方式不同罷了.
--//https://blog.dbi-services.com/arraysize-or-rowprefetch-in-sqlplus/的測試:
We can see 3 things here:
- The first FETCH (from the internal OCI execute) contains always the number of rows as defined in the ROWPREFETCH
setting
- The second FETCH (and all subsequent fetches) contains a multiple of the ARRAYSIZE setting rows. The following code
fragment should show the logic:
2nd_Fetch_Rows = if ROWPREFETCH <ARRAYSIZE
then ARRAYSIZE
else (TRUNC(ROWPREFETCH/ARRAYSIZE)+1)*ARRAYSIZE
- If a fetch does not detect the end of the data in the cursor then an additional fetch is necessary. In 3 cases above a
last fetch fetched 0 rows.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2714661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181109]12c sqlplus rowprefetch引數5.txtSQL
- [20181108]12c sqlplus rowprefetch引數4.txtSQL
- [20181106]12c sqlplus rowprefetch引數3.txtSQL
- [20181109]12c sqlplus rowprefetch引數5SQL
- [20170506]fetch sqlplus arraysize.txtSQL
- [20190215]sqlplus set arraysize.txtSQL
- 電腦TXT檔案怎麼顯示行數? 電腦TXT檔案行數檢視方法
- [20180813]sqlplus arraysize設定與SDU.txtSQL
- [20181006]12c sqlplus顯示使用者上次登入時間.txtSQL
- sqlplus 顯示控制SQL
- 測試SQLPLUS的ARRAYSIZE對效能的影響SQL
- SQLPLUS顯示亂碼SQL
- sqlplus中“已選擇XX行”的顯示和去除SQL
- [20181207]sqlplus下顯示資料精度.txtSQL
- [20180130]sqlplus欄位顯示問題.txtSQL
- 利用connect by顯示類目層次關係
- 易混淆親緣關係統計量(血緣係數、親緣係數、近交係數)介紹
- sqlplus中調節顯示SQL
- 均富會計師事務所:調查顯示全球女性執行長數量略有增加
- WPF/C#:如何顯示具有層級關係的資料C#
- PbootCMS修改後臺文章顯示最大數量boot
- [20130814]12c sqlplus.txtSQL
- [20191104]sqlplus下顯示資料精度2.txtSQL
- [20211108]sqlplus資料寬度顯示設定.txtSQL
- sqlplus顯示規格的各種設定SQL
- oracle sqlplus中文顯示亂碼的問題OracleSQL
- 修改sqlplus中顯示時間日期的格式SQL
- 《Activity顯示介面歷險記》—說說View的那些理不清的關係View
- 關於UIImageView的顯示問題——居中顯示或者UIView
- CSS實現限制顯示的字數,超出顯示"..."CSS
- unity 分數的顯示Unity
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- Linux中sqlplus退格顯示“^H” 的解決LinuxSQL
- [20140820]顯示儲存過程的引數.txt儲存過程
- Oracle - SQLPlus中文顯示亂碼問題OracleSQL
- 設定sqlplus顯示字元 防止誤操作SQL字元
- sqlplus 顯示問號,解決辦法SQL
- 解析度,dpi,dp,與最終顯示大小的四角關係