`

在ORACLE下编写性能好的存储过程的一些经验

阅读更多

大家好,在此谈一些在ORACLE9I和PL/SQL Developer作为开发工具的环境下,对于如何编写性能好的存储过程,提一些自己的看法:

1、代码的清晰性是第一步的,代码应该整齐、缩进一致、注释充分。
    PL/SQL DEV这个工具里面提供了代码格式化的工具:点击Edit菜单,点击“PL/SQL Beautifier”,工具会自动为我们排版布局。建议每次编写完成后都执行一下这个工具。
2、尽量不要拼装SQL。
   ·PL/SQL语言不善于处理字符串,在存储过程中拼装SQL会使代码看起来很乱,维护起来很费力;
   ·拼装的SQL只能动态执行,没有绑定变量,性能也不高;
    ·拼装的过程中出错,调试起来很麻烦;错误只能在运行期发现,而不能在编译期发现;
   ·拼装的SQL在优化阶段很麻烦,一条已经优化好的语句要拆开放到代码里面去才行。
3、具体问题具体处理,不要偷懒。
    例如WEB中的分页一般要进行两次查询,一次获得记录的总数,一次取得当前页的数据。
    很多时候,取得记录数和取得数据是不同的,把他们分别进行处理,能大大提高性能。
4、一个存储过程只干一件事情,不要尝试去写一个功能完备的存储过程。
5、养成“编写好语句后,先按F5看看执行计划”的好习惯。
    一条SQL执行的快慢的最本质的区别还是在于执行计划的好坏。学会看执行计划,分析语句是否能更好地利用到索引。
    在数据量大的情况下,最好把参数代进去,实际执行一下,验证语句是否与所想的一样快。
6、数据量很大,语句优化了还是执行很慢的时候,“大表变小表,小表再连接”的方法非常管用。
    例如:语句需要连接三个表,执行得非常慢。如果采用了临时表,先把其中两个表的数据汇总后存储到临时表,再和大的表连接,性能会高出很多。虽然一条语句写成了三条,但是性能反而会提高。
7、一定一定不要使用游标。
   与上面的原则相反,大多数时候,尽量用一条SQL完成。SQL是批量的,而且可以在CPU的层面并行执行,在RAID的层面可以并行读取,如果使用游标,就只能一条一条的执行,性能绝对高不了。
2
1
分享到:
评论
1 楼 lanicetomas 2010-11-19  
asdfasdfasdf

相关推荐

    使用Java编写Oracle存储过程.pdf

    在介绍使用Java编写Oracle存储过程之前,我们首先需要了解存储过程的基本概念以及使用它们的好处。存储过程是存储在数据库中的一段预编译和优化过的代码,可以包含复杂的业务逻辑。它们在第一次执行后被编译并存储在...

    oracle存储过程编写

    Oracle存储过程是数据库管理系统中的一种重要程序设计组件,它允许用户在数据库中执行复杂的操作序列,而不仅仅局限于简单的SQL查询。在Oracle中,存储过程是由一个或多个SQL语句和PL/SQL块组成的,可以被封装起来并...

    Oracle存储过程编写与调试

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL语句和PL/SQL块,并将它们作为一个单元来执行。这极大地提高了代码的重用性和数据库操作的效率。下面我们将深入探讨Oracle存储过程...

    oracle 事务 回滚 存储过程

    在Oracle中,存储过程使用PL/SQL编写,可以在数据库内部执行,提供高性能和安全性。 ### Oracle事务与存储过程的结合 当在存储过程中使用事务时,可以更精细地控制数据更改的提交或回滚。例如,在给定的部分内容中...

    Oracle存储过程编写及调优

    在Oracle中,编写高效且优化的存储过程是提升系统性能的关键步骤。 首先,存储过程的编写应当遵循良好的编程实践,确保SQL语句的质量。在设计存储过程时,目标是减少服务器资源的消耗,如CPU使用、IO次数和排序数量...

    oracle存储过程-帮助文档

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL语句和PL/SQL块,形成可重复使用的代码单元。这篇博客“oracle存储过程-帮助文档”可能提供了关于如何创建、调用和管理Oracle存储过程...

    oracle的一个简单存储过程实例

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...

    Oracle存储过程开发的要点

    在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别进行复杂的逻辑处理。以下是Oracle存储过程开发的一些要点: 一、概述 在Oracle存储过程开发中,你需要掌握以下...

    用Java编写Oracle数据库存储过程

    在Oracle数据库中,存储过程是一种预编译的SQL和PL/SQL代码集合,可以在数据库中存储和重复调用,以执行特定的任务。Java与Oracle的集成使得开发者可以用Java语言来编写存储过程,提供了更大的灵活性和可移植性。...

    介绍oracle基本语言,性能调试、存储过程编写

    本文将深入探讨Oracle基本语言、性能调试及存储过程的编写,旨在提升系统性能和优化数据库操作。 首先,我们关注Oracle基本语言,这包括SQL(Structured Query Language)的使用。SQL是用于管理和操作数据库的标准...

    ORACLE存储过程最全教程

    Oracle存储过程是数据库管理系统Oracle中的一个关键特性,它允许开发者编写一组预编译的SQL和PL/SQL语句,以实现特定的业务逻辑或数据库操作。这篇教程将深入讲解Oracle存储过程的各个方面,帮助你从基础到高级全面...

    Oracle存储过程编写经验和优化措施

    本文主要分享一些在编写Oracle存储过程时的经验和优化措施。 首先,跨库操作应尽量避免直接引用其他数据库的表或视图,而应在当前库中创建视图以实现跨库操作。这样做有助于简化维护,因为`sp_depends`工具无法显示...

    oracle存储过程实例

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程在数据库中预先编译并存储,这样在执行时能提高效率,因为它避免了每次调用时的重新...

    oracle 存储过程 案例

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重复使用的程序单元。这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用这些存储过程。 Oracle 存储过程 首先,我们编写了两个 Oracle 存储过程:`P_EMP_SELECT` 和 `P_EMP_ADD`。 `P_EMP_SELECT` ...

    oracle存储过程教程

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的程序单元,这些程序单元可以在需要时执行,提高了数据处理的效率和应用程序的性能。在Java开发中,Oracle...

    Oracle存储过程机密工具

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许程序员编写SQL和PL/SQL代码块,以便在需要时执行。这些过程可以包含复杂的业务逻辑,数据处理和计算,从而提高应用程序的效率和性能。然而,出于安全...

    springboot整合mybatis调用oracle存储过程

    Oracle数据库则是企业级应用中常见的关系型数据库,存储过程是其提供的一种强大功能,允许开发者编写复杂的SQL逻辑并进行封装。本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、Java 等。存储过程可以封装复杂的业务逻辑,提高数据库的安全性和性能。 二、CallabledStatement ...

    oracle存储过程笔记

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程的概念类似于高级编程语言中的模块,通过参数传递来实现数据的交互,体现了模块...

Global site tag (gtag.js) - Google Analytics