新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > 数据库综合 > 正文:通过分析SQL语句的执行计划优化SQL(一)

通过分析SQL语句的执行计划优化SQL(一)

新客网 XKER.COM 2007-07-27 来源: 徐玉金 收藏本文

二:有效的应用设计

 

我们通常将最常用的应用分为2种类型:联机事务处理类型(OLTP),决策支持系统(DSS)。

 

联机事务处理(OLTP)

该类型的应用是高吞吐量,插入、更新、删除操作比较多的系统,这些系统以不断增长的大容量数据为特征,它们提供给成百用户同时存取,典型的OLTP系统是订票系统,银行的业务系统,订单系统。OTLP的主要目标是可用性、速度、并发性和可恢复性。

当设计这类系统时,必须确保大量的并发用户不能干扰系统的性能。还需要避免使用过量的索引与cluster 表,因为这些结构会使插入和更新操作变慢。

 

决策支持(DSS)

该类型的应用将大量信息进行提取形成报告,协助决策者作出正确的判断。典型的情况是:决策支持系统将OLTP应用收集的大量数据进行查询。典型的应用为客户行为分析系统(超市,保险等)。

决策支持的关键目标是速度、精确性和可用性。

该种类型的设计往往与OLTP设计的理念背道而驰,一般建议使用数据冗余、大量索引、cluster table、并行查询等。

近年来,该类型的应用逐渐与OLAP、数据仓库紧密的联系在一起,形成的一个新的应用方向。

 

三:SQL语句处理的过程

 

在调整之前我们需要了解一些背景知识,只有知道这些背景知识,我们才能更好的去调整sql语句。

本节介绍了SQL语句处理的基本过程,主要包括:

查询语句处理

DML语句处理(insert, update, delete)

DDL 语句处理(create .. , drop .. , alter .. , )

事务控制(commit, rollback)

 

SQL 语句的执行过程(SQL Statement Execution)

在某些情况下,Oracle运行sql的过程可能与下面列出的各个阶段的顺序有所不同。

如DEFINE阶段可能在FETCH阶段之前,这主要依赖你如何书写代码。

 

对许多oracle的工具来说,其中某些阶段会自动执行。绝大多数用户不需要关心各个阶段的细节问题,然而,知道执行的各个阶段还是有必要的,这会帮助你写出更高效的SQL语句来,而且还可以让你猜测出性能差的SQL语句主要是由于哪一个阶段造成的,然后我们针对这个具体的阶段,找出解决的办法。

 

 

DML语句的处理

本节给出一个例子来说明在DML语句处理的各个阶段到底发生了什么事情。

假设你使用Pro*C程序来为指定部门的所有职员增加工资。程序已经连到正确的用户,你可以在你的程序中嵌入如下的SQL语句:

共3页: 上一页 [1] [2] [3] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐