为调整你已有的系统,遵从下列步骤: l 调整操作系统的硬件和软件 l 通过查询V $SESSION_WAIT视图,识别性能的瓶颈,这个动态性能视图列出了造成会话(session)等待的事件。 l 通过分析V $SESSION_WAIT中的数据,决定瓶颈的原因。 l 纠正存在的问题。
监控应用系统
这主要是通过监控oracle的动态视图来完成。各种有用的动态视图:如v$session_wait, v$session_event等。
第2章 有效的应用设计 我们通常将最常用的应用分为2种类型:联机事务处理类型(OLTP),决策支持系统(DSS)。
联机事务处理(OLTP) 该类型的应用是高吞吐量,插入、更新、删除操作比较多的系统,这些系统以不断增长的大容量数据为特征,它们提供给成百用户同时存取,典型的OLTP系统是订票系统,银行的业务系统,订单系统。OTLP的主要目标是可用性、速度、并发性和可恢复性。当设计这类系统时,必须确保大量的并发用户不能干扰系统的性能。还需要避免使用过量的索引与cluster 表,因为这些结构会使插入和更新操作变慢。
决策支持(DSS) 该类型的应用将大量信息进行提取形成报告,协助决策者作出正确的判断。典型的情况是:决策支持系统将OLTP应用收集的大量数据进行查询。典型的应用为客户行为分析系统(超市,保险等)。决策支持的关键目标是速度、精确性和可用性。该种类型的设计往往与OLTP设计的理念背道而驰,一般建议使用数据冗余、大量索引、cluster table、并行查询等。近年来,该类型的应用逐渐与OLAP、数据仓库紧密的联系在一起,形成的一个新的应用方向。
第3章 SQL语句处理的过程
在调整之前我们需要了解一些背景知识,只有知道这些背景知识,我们才能更好的去调整sql语句。 本节介绍了SQL语句处理的基本过程,主要包括: · 查询语句处理 · DML语句处理(insert, update, delete) · DDL 语句处理(create .. , drop .. , alter .. , ) · 事务控制(commit, rollback)
SQL 语句的执行过程(SQL Statement Execution) 图3-1 概要的列出了处理和运行一个sql语句的需要各个重要阶段。在某些情况下,Oracle运行sql的过程可能与下面列出的各个阶段的顺序有所不同。如DEFINE阶段可能在FETCH阶段之前,这主要依赖你如何书写代码。
对许多oracle的工具来说,其中某些阶段会自动执行。绝大多数用户不需要关心各个阶段的细节问题,然而,知道执行的各个阶段还是有必要的,这会帮助你写出更高效的SQL语句来,而且还可以让你猜测出性能差的SQL语句主要是由于哪一个阶段造成的,然后我们针对这个具体的阶段,找出解决的办法。
图 3-1 SQL语句处理的各个阶段
DML语句的处理 本节给出一个例子来说明在DML语句处理的各个阶段到底发生了什么事情。假设你使用Pro*C程序来为指定部门的所有职员增加工资。程序已经连到正确的用户,你可以在你的程序中嵌入如下的SQL语句: EXEC SQL UPDATE employees SET salary = 1.10 * salary WHERE department_id = :var_department_id; var_department_id是程序变量,里面包含部门号,我们要修改该部门的职员的工资。当这个SQL语句执行时,使用该变量的值。
上一篇:mysql 4.1采用了新验证方法后的认证问题
下一篇:通过分析SQL语句的执行计划优化SQL(二)
|