表2。常埃埃皸l記錄測試結果
測試次數
使用cursor方式(TD)
使用PL/SQL方式(WCDMA)
1
3"
0"
2
2"
0"
3
2"
0"
4
2"
0"
5
2"
0"
平均
2.2”
0”
表3。梗埃埃皸l記錄測試結果
測試次數
使用cursor方式(TD)
使用PL/SQL方式(WCDMA)
1
0"
0"
2
14"
1"
3
9"
0"
4
13"
1"
5
10"
0"
平均
9.2”
0.4”
根據測試結果可以看出的確用存儲過程在大數據量時是極其有優勢的,特別是在大數據量的情況下,并且存儲過程的性能極其穩定,cursor方式由于時間長,感覺受網絡狀況影響較大,時間長短不定?梢缘贸鼋Y論使用儲存過程將18倍的提高數據查詢讀取速度。
1.3 部分測試代碼
1.3.1 測試表腳本:
創建用于查詢的表
drop table tb_boardt;
create table tb_boardt(
BYBOARDTYPE NUMBER(3),
ABYBOARDNAME VARCHAR2(15)
) tablespace cm_space;
用儲存過程向表中插入需要查詢的120000記錄:)
declare
i integer :=0;
begin
for i in 1..20000 loop
insert into tb_boardt values(1,%27Allen_BOARD%27);
insert into tb_boardt values(2,%27LILY_BOARD%27);
insert into tb_boardt values(4,%27LIL_BOARD%27);
insert into tb_boardt values(5,%27ALLEN_BOARD%27);
insert into tb_boardt values(6,%27BEMC_BOARD%27);
insert into tb_boardt values(7,%27TWIM_BOARD%27);
commit;
end loop;
end;
用于讀取記錄的存儲過程包頭
create or replace package testEptTbl as
type charArrayType is table of varchar2(2048)
index by binary_integer;
type lcharArrayType is table of varchar2(2048)
index by binary_integer;
type numArrayType is table of int
index by binary_integer;
num INTEGER;
m_RncID INTEGER;
procedure get_R0BrdLib(
batch_size in integer,
found in out integer,
done_fetch out integer,
BoardType1 out numArrayType,/*單板類型Board Type*/
BoardName1 out charArrayType/*各子單元類型包含的子單元個數Sunit Number Per Type*/);
end testEptTbl;
/
show err
用于記錄的存儲過程包體
create or replace package body testEptTbl as
/* 3 */
cursor CUR_R0BrdLib is
SELECT BYBOARDTYPE,ABYBOARDNAME FROM tb_boardt;
文章來源于領測軟件測試網 http://www.kjueaiud.com/