ORACLE数据库中关于游标和记录表的速度测试
1
、问题提出
在我们日常的数据库操作尤其是存储过程设计中,经常有记录表之类的集合、显示游标等操作,但这两种数据处理方式在速度及性能上有什么区别呢?
2
、测试方法
在
ORACLE
数据库中创建一个数据表,然后对创建的数据表分别插入
100
条、
1000
条、
10000
条、
100000
条数据,最后对这些数据分别用游标和记录表执行相同功能的操作
10
次,计算平均消耗的系统时间。
(
1
)创建数据表
create table table_test
(
COL1 INTEGER,
COL2 VARCHAR2(20)
)
(
2
)插入数据(以
100000
条数据为例)
--
循环
100000
次添加
DECLARE
i INTEGER;
BEGIN
FOR i IN 1..100000 LOOP
INSERT INTO TABLE_TEST(COL1,COL2)
VALUES(i,'ADD'||i);
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
(
3
)游标操作
--
游标处理
DECLARE
v_COL1 TABLE_TEST.COL1%TYPE;
v_COL2 TABLE_TEST.COL2%TYPE;
v_BEGIN INTEGER;
v_END INTEGER;
CURSOR CUR_TYPE IS
SELECT COL1,COL2 from TABLE_TEST;
BEGIN
SELECT DBMS_UTILITY.get_time INTO v_BEGIN
from DUAL;
DBMS_OUTPUT.put_line('
开始时间:
'||v_BEGIN);
IF CUR_TYPE%ISOPEN = FALSE then
OPEN CUR_TYPE;
END IF;
FETCH CUR_TYPE INTO v_COL1,v_COL2;
WHILE CUR_TYPE%FOUND
LOOP
FETCH CUR_TYPE INTO v_COL1,v_COL2;
END LOOP;
CLOSE CUR_TYPE;
SELECT DBMS_UTILITY.get_time INTO v_END
from DUAL;
DBMS_OUTPUT.put_line('
结束时间:
'||v_END);
DBMS_OUTPUT.put_line('
开始时间
'||v_BEGIN||'
,结束时间
'||v_END||'
消耗时间
'||TO_CHAR(v_END-v_BEGIN));
DBMS_OUTPUT.put_line('
消耗时间:
'||TO_CHAR(v_END-v_BEGIN));
END;
(
4
)记录表操作
--
记录表处理
DECLARE
v_COL1 
相关文档:
对于Oracle ORA-24343这种错误,Oracle的官方解释是:
Error Message: ORA-24343 user defined callback error
Error Cause:
The only valid return value for a user defined callback function is OCI_ CONTINUE. Any other value will cause this error.
Action:
Make sure that OCI_CONTINUE i ......
很久不用的oralce数据库,如果忘记了密码,可以这样解决:
如果没有设置环境变量, 去目录C:\oracle\product\10.2.0\db_1\BIN 执行以下命令:
C:\oracle\product\10.2.0\db_1\BIN>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jan 22 16:00:18
2010 Copyright (c) 1982, 2005, Oracle. All ri ......
转:http://oracle.chinaitlab.com/install/755900.html
简单来说,Oracle数据库的监听配置包括服务器端的配置和客户端的配置。服务器端是通过监听器即LISTENER来完成的,而客户端配置有多种,常用的是采用本地服务名来配置。关于监听器和本地服务名,详细解释如下:
一、 ......
一、常用数据类型:
Number:数字类型
Int:整数型
Pls_integer:整数型,产生溢出的错误
Binary_integer:整数型
Char:定长字符,最长255个字符
Varchar2:变长字符,最长2000个字符
Long:变长字符,最长2GB
Date:日期型
Boolean:布尔型
二、定义常量
格式:常量名 constant &nbs ......
学习Oracle是一个漫长艰辛的过程。如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。简单总结一下,那就是:兴趣、学习、实践。 ......