易截截图软件、单文件、免安装、纯绿色、仅160KB

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优化器的优化方式和优化模式

Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用Pl/sql Developer、Toad等工具去看一个语句的执行计划,不过你 ......

在64位Linux环境下安装Oracle数据库10g

经过数天不懈的努力,LINUX历尽三次重装,ORACLE重装N次终于在LiNUXAS4 update6 x86_64 下安装好ORACLE10g R 2 (64位) 了。
下面把安装过程和大家分享一下,以免更多人像我一样花费大量的时间在莫名其妙的问题上。
首先要说明的是,官方也有相应的文档安装但是实际过程中,会有一些问题需要解决。
本文档参照了相关说 ......

Oracle EXP/IMP参数详解

exp/imp是Oracle自带的导入导出命令,运用它,即使不需要那结UI工具也能轻易的完成数据导出导入工作,下面是它们的参数:
EXP参数详解
使用的格式是:EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
其中USERID是必须的且为第一个参数
关键字
备注
USERID
用户名/口令
FULL
导出整个文件 (N)
BUFFER ......

oracle将字符串转换为12小时与24小时制:


oracle将字符串转换为12小时与24小时制:
--12小时制:
select hsv.mydate from huhai_seq_value  hsv
where hsv.mydate = to_date('2009-03-03 00:00:00','yyyy-mm-dd hh:mi:ss');
--24小时制:
select hsv.mydate from huhai_seq_value  hsv
where hsv.mydate = to_date('2009-03-03 00:00:00','yyyy-m ......

Oracle学习的一些建议


  学习Oracle是一个漫长艰辛的过程。如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。简单总结一下,那就是:兴趣、学习、实践。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号