• λ我爱Aspx >> C#.Net >> 用共享游标提升 SQL 性能
  • 用共享游标提升 SQL 性能

  • :aspxer  Դ:5iaspx  :2007-7-30 6:10:19  ؼ:sql
  • Boost SQL Performance with cursor_sharing

    关键词:cursor_sharing

    概述

    本文阐述在Oracle8i Release 2和Oracle9i中增强的游标共享设施。这些增强功能被一个新的参数cursor_sharing控制。

    cursor_sharing的目的就是提高没有使用绑定变量(bind vvariable)的应用程序服务器的性能。

    需要 cursor_sharing

    本段解释为什么应用程序不使用绑定变量(bind variables)会带来性能问题。

    应用程序反复执行相似的SQL语句

    使用Oracle数据库管理他(她)们的数据的应用程序必须使用SQL语句访问/修改数据库。这些SQL语句可以是由一个应用程序使用OCI, OCCI, JDBC, PL/SQL等直接产生的,也是可以是使用其他工具和库(例如:dbms_sql)间接产生的。

    根据不用的应用类型,通常一个应用程序都为最终用户提供了一个固定的功能集合,例如,一个人力资源应用程序可能会提供一些像增加一个新雇员,修改一个雇员的个人信息等功能。最终这些功能使用SQL访问和/或修改数据。因为应用程序重复地执行这些功能,一个应用和Oracle数据库的交互是由相似的SQL语句的反复执行构成的。

    SQL调用的步骤

    为执行一个SQL语句,客户端可以使用使用不同的接口。例如,通过OCI接口,客户端创建一个语句句柄(statement handle),然后perpare这个语句,绑定,定义和执行这个语句句柄,或者,SQL语句也可以通过一个PL/SQL过程被执行。

    按照客户端接口,Oracle数据库一直都使用固定的步骤(默认):

    1. 打开一个游标 - 用户游标是一个和SQL语句相关的全部用户状态的句柄,像执行内存,共享游标引用,用户游标的当前状态等等。

    2. 解析一个SQL语句到打开的用户游标中 - 使SQL语句和用户游标关联;它也建立了一个共享游标,对应于SQL语句的解析格式。在一些情况下,共享游标也可以作为解析的一部分被校对和优化。解析,校对和优化SQL语句的过程通常是非常耗费CPU时间,内存和连接资源的。

    Ҷƪл˵?
  • һƪC#网络应用编程基础练习题与答案(六)
    һƪC#图像放大问题解决方法