`
Acmey
  • 浏览: 53892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Pl/sql经验小结

阅读更多
平时在PL/SQL中的编程中遇到一些问题,这里以问答的形式来进行把它们总结下来,以供大家分享。

  1、当需要向表中装载大量的数据流或者需要处理大量的数据流的时候,能否使用管道提高处理效率?
管道函数对于改善并行查询的性能非常方便,它加快往表中加载数据的速度。管道函数的使用总结如下两点:

  每当在查询里使用PL/SQL函数时,该查询将被序列化,即一个处理器只能运行一个查询实例,那么在这种情况下不可能使用并行查询(比如在数据仓库中要经常使用这项技术)。因此,为了使用并行查询就必须使用管道函数,这样也就加快了执行的速度。

  管道函数的输入参数必须是一个引用记录集类型(即ref cursor),而返回的是嵌套表类型(其表中每一行对应每一个引用记录)。在使用管道函数之前,必须先在程序头写上PARALLEL_ENABLE,这样才能在查询语句中使用管道函数来处理了。


  2. 如何使PL/SQL程序等待一段时间执行?
 
  方法就是使用DBMS_LOCK包的SLEEP函数,可以进行精确定时,其语法为:

DBMS_LOCK.SLEEP (seconds IN NUMBER);

  3.需要在一张表插入一条记录之后等若干秒后再执行另外一个操作,如何在PL/SQL程序里进行定时操作?

  一般的做法是用循环作延迟,利用 DBMS_UTILITY的gettime函数来检测当前的时间,程序代码如下:


DECLARE
v_delaytime CONSTANT INTEGER := 100;
v_starttime INTEGER ;
v_endtime INTEGER ;
BEGIN
V_starttime := DBMS_UTILITY.get_time;
V_endtime := DBMS_UTILITY.get_time;
While abs(V_endtime- V_starttime)< v_delaytime loop
/*空循环或者简单的耗时执行语句*/
End loop;
END;
/


   另外如果是不同会话(session)之间的定时,就必须使用DBMS_PIPE包的函数来实现会话间的消息传递。

  4.当PL/SQL返回一个数据集的时候,该使用集合还是游标?

  一般情况下,有以下两点作为依据:

  1) 如果PL/SQL程序返回多多行数据给另外一个PL/SQL程序的话,这里就建议使用集合,因为这样可以利用集合的批收集(bulk collection)来提高从数据库提取数据的速度。

  2) 如果需要在PL/SQL程序的环境中把数据返回到宿主语言环境中(如Sql*plus,c,delphi等),这时应该使用游标变量来返回这些数据,因为几乎所有的宿主语言都支持游标变量,但不是所有的宿主语言都支持集合。这样可以增强程序的可移植性。

  5.如何更有效的在PL/SQL中使用游标?

  游标是PL/SQL中一个非常重要的概念,对数据库的检索主要依靠游标来操作。在PL/SQL中有两类游标,一类是隐式游标,如select clno into v_clno from table_detail.另外一类是显式游标,如cursor v_cur is select clno from table_detail。对于游标的使用这里给出以下几点建议:

  1) 尽可能的使用bulk collection。它能够较大的提高运行性能,在Oracl9i的第二版,甚至可以使用bulk collection来直接将数据写入到记录表

  2) 尽量使用显式游标来处理,因为相对于隐式游标来说,显式游标的速度更快一些。

  3) 如果查询的表很小或者是静态的,可以把该表缓存到一个包级的集合里。这样,你的查询函数就直接从集合里(即进程全局区,PGA cache),而不是从系统全局区(SGA)来取数据,这样的处理速度会提升很多。
分享到:
评论

相关推荐

    oracle 9i pl/sql程序设计笔记

    通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...

    PL/SQL VCS插件安装包+PL/SQL

    总结来说,"PL/SQL VCS插件安装包+PL/SQL"提供了一种高效的方式来管理Oracle数据库中的PL/SQL代码,通过整合VSS或其他VCS系统,实现了版本控制功能,促进了团队协作,增强了代码的可维护性。无论是在小型项目还是...

    Oracle PL/SQL程序设计(第5版)(上下册)

    ### Oracle PL/SQL程序设计(第5版)(上下册)知识点概述 ...本书不仅覆盖了PL/SQL的基础知识,还包括了大量的实战经验和高级主题,对于想要深入了解和掌握Oracle数据库的读者来说是非常宝贵的资源。

    pl/sql学习笔记

    PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库中的过程式编程语言,它结合了SQL查询语句和传统的过程式编程元素,使得在数据库管理中进行复杂逻辑处理成为可能。以下是对PL/SQL的学习笔记...

    Oracle PL/SQL实例精解 数据库建立代码

    总结起来,"Oracle PL/SQL实例精解 数据库建立代码"涵盖了数据库设计、对象创建、索引优化以及数据插入等多个方面,是学习和提升Oracle数据库管理技能的宝贵资源。通过解析和执行这些示例,开发者可以更好地理解和...

    PL/SQL基础编程,实例自写

    ### PL/SQL基础编程知识点详解 #### 一、PL/SQL概述 PL/SQL,全称为Procedural Language for SQL,是Oracle数据库特有的高级程序设计语言。它结合了SQL的数据处理能力和传统编程语言的控制结构,使开发者能够在...

    PL/SQL Developer 7.0

    总结,PL/SQL Developer 7.0是Oracle数据库开发者的得力助手,通过其丰富的功能和用户友好的界面,可以大幅提升开发效率和代码质量。结合“PLSQL用户指南”,开发者可以系统学习并掌握PL/SQL编程,从而在数据库应用...

    pl/sql程序设计ppt

    总结,PL/SQL提供了丰富的编程工具,如过程、函数、触发器和包,使开发者能更灵活地管理和操作数据库。通过学习和掌握这些概念,你可以创建高效、可维护的数据库应用程序。这份"pl/sql程序设计ppt"可能包含了对这些...

    PL/SQL Developer 64 bit

    根据提供的文件信息,我们将重点解析与“PL/SQL Developer 64 bit”相关的知识点,包括其功能、用途以及在数据库开发中的应用。 ### PL/SQL Developer 64位概述 #### 1. 什么是PL/SQL Developer? PL/SQL ...

    PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql_pls

    "PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql plsql.ppt"这个压缩包提供了学习PL/SQL的基础材料,通过"第一章 pl-sql介绍.ppt"开始你的学习之旅,逐步探索这个强大而灵活的数据库编程语言。

    Oracle PL/SQL programming(5th Edition)

    - **有经验的程序员**:本书不仅适合新手,也适合有经验的Oracle程序员,帮助他们更深入地理解和掌握PL/SQL。 #### 四、核心内容概览 1. **语言基础** - **数据类型**:介绍了PL/SQL支持的各种数据类型,包括基本...

    PL/SQL学习总结

    本文主要总结了 PL/SQL 的一些基本语句和操作,特别关注在 ORACLE 报表开发和 FROM 开发中的应用。 1. 日期处理: 在 PL/SQL 中,日期通常需要进行格式转换和截取操作。例如,`trunc()` 函数用于截取日期至指定时间...

    pl/sql数据库学习笔记

    下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量(初始值是多少,最终值如何得到))→编码→测试→上线 二、Select into语句 *用于创建...

    PL/SQL 练习

    从给定的文件信息中,我们可以提炼出一系列与Oracle PL/SQL相关的知识点,涉及变量声明、数据查询、条件语句、异常处理以及数据库更新等核心概念。以下是对这些知识点的详细解析: ### 1. 变量声明与赋值 在PL/SQL...

    PL/SQL Developer如何连接64位的Oracle图解

    总结,要在64位Windows系统上使用PL/SQL Developer连接64位Oracle数据库,关键在于下载并配置32位的Oracle客户端,以及正确设置PL/SQL Developer的连接参数。遵循上述步骤,你就能在64位环境中顺利地使用PL/SQL ...

    oracle sql and pl/sql

    根据提供的文件信息,我们可以推断出本书主要关注的是Oracle SQL 和 PL/SQL 的掌握与应用。下面将基于这些信息来生成相关的知识点。 ### Oracle SQL 和 PL/SQL 知识点 #### 一、Oracle SQL 概述 1. **定义**:...

    PL/SQLdeveloper32位和64位带汉化及注册码

    总结起来,PL/SQL Developer是一款强大的Oracle数据库开发工具,其32位和64位版本的提供,满足了不同用户的需求,汉化及注册码的包含使得使用更加便捷。通过它,用户可以高效地进行PL/SQL编程,提升数据库管理和开发...

    PL/SQL Developer 8.0.4.1514注册码

    PL/SQL Developer是一款专为Oracle数据库设计的强大开发工具,它支持PL/SQL语言的开发、调试与管理。该工具不仅能够帮助开发者高效地编写和维护PL/SQL代码,还提供了诸如代码格式化、重构、性能分析等多种高级功能。...

Global site tag (gtag.js) - Google Analytics