总结经验oracle9ipl/SQL编程
1。当您需要将大量数据流加载到表中或需要处理大量数据流时,您是否可以使用管道来提高处理效率
管道功能对于提高并行查询的性能非常方便,它加快了将数据加载到表中的速度:
每当使用PL / SQL查询功能,查询将被序列化,即处理器只能运行一个查询实例,所以它是不可能在这种情况下,使用并行查询为例,在数据仓库中,我们经常需要使用这项技术。因此,管道功能必须使用为了使用并行查询,这将加快执行。
管道的函数的输入参数必须是一个引用记录集类型(REF CURSOR),和嵌套表类型返回,它对应于每个引用表中的记录。使用前管的功能,你必须写parallel_enable对程序的头使管函数中使用的查询语句处理它。
2。如何使这个PL/SQL程序等待一段时间来执行
U3000
该方法使用的dbms_lock包睡眠功能进行精确的定时,和语法:
dbms_lock.sleep(秒数);
三.必须在插入一个表之后等待几秒钟,然后在几秒钟之后执行另一个操作。如何在PL/SQL程序中进行定时操作
一般的做法是使用周期的延迟,使用dbms_utility的时间函数来检测当前时间,程序代码如下:
声明
v_delaytime整型常量:= 100;
v_starttime整数;
v_endtime整数;
开始
v_starttime:= dbms_utility.get_time;
V_endtime: = DBMS_UTILITY.get_time;
而ABS(v_endtime - v_starttime)< v_delaytime环
*空气流通或执行陈述的简单时间。
结束循环;
结束;
/
此外,如果是在不同的会话(session)的时机,有必要使用的dbms_pipe分组功能实现之间的会话的消息传递。
4。当返回一个数据集时,它应该用作一个集合还是一个游标
一般来说,以下两点是基于以下内容的:
1)如果PL - C/SQL程序将多个行数据返回到另一个SQL / SQL程序,建议使用这里的集合,因为它可以利用集合的批处理收集(批量收集)来提高从数据库中提取数据的速度。
2)如果你需要在PL / SQL编程环境数据返回到主机的语言环境(例如SQL*Plus,C,Delphi等),则应使用游标变量返回这些数据,因为几乎所有的宿主语言支持游标变量,但不是所有的宿主语言支持集。这可以提高程序的可移植性。
5。如何更有效地使用游标
光标在PL / SQL的一个非常重要的概念,以及数据库的检索取决于光标操作。有两种在PL / SQL游标,一个是隐式游标,如选择硝酸氯为v_clno从table_detail。,和其他的是显式游标,如光标v_cur是选择,v_cur.the如下建议对游标的使用:
1)尽量使用批量采集,可以大大提高性能,在oracl9i第二版,甚至散装收集可用于直接写数据记录表
2)显式游标尽可能多地使用,因为显式游标比隐式游标快。
3)如果表非常小或静态,则表可以被缓存到包级集合中。这样,您的查询函数直接从集合(即过程全局区域、PGA缓存)获取数据,而不是从系统全局区域(SGA)获取数据,因此处理速度将大大增加。