WEB开发网
开发学院数据库Oracle SQL语句性能调整 阅读

SQL语句性能调整

 2007-05-06 12:05:38 来源:WEB开发网   
核心提示: (4)对于超过5个表的连接的查询,建议不要使用成本优化器,SQL语句性能调整(5),而是在SQL语句中通过添加/* + rule */提示或者通过指定的执行计划来避免可能会在20分钟以上的SQL解析时间,基于规则优化器(RBO):(1)ORACLE 8i以及ORACLE的以前版本主要用(R

(4)对于超过5个表的连接的查询,建议不要使用成本优化器,而是在SQL语句中通过添加/* + rule */提示或者通过指定的执行计划来避免可能会在20分钟以上的SQL解析时间。

基于规则优化器(RBO):

(1)ORACLE 8i以及ORACLE的以前版本主要用(RBO),并且比较有效;

(2)通过optimizer_mode=rule来选择RBO;通过alter session set optimizer_goal=rule来选择RBO; 通过添加/* + rule */来选择RBO;

(3)在RBO中,from 子句的表的顺序决定表的连接顺序。From 子句的最后一个表是驱动表,这个表应该是最小的表。

(4)限定性最强的布尔表达式放在最底层。

4、跟踪、优化SQL语句的方法

保证在实例级将TIMED_STATISTICS设置为TRUE(在 INIT.ORA中永久的设置它或执行 ALTER SYSTEM 命令临时设置它);

保证将MAX_DUMP_FILE_SIZE设置的较高。此参数控制跟踪文件的大小。

决定USER_DUMP_DEST所指向的位置,并保证有足够的磁盘空间。这是放置跟踪文件的位置。

在应用系统运行时,打开所怀疑的回话的SQL_TRACE.(在 INIT.ORA中通过SQL_TRACE=TRUE永久的设置对所有的回话进行跟踪或通过使用系统包DBMS_SYSTEM.set_sql_trace_in_session(sid,serial,true);命令临时设置它)

执行业务相关操作;

设置跟踪结束(DBMS_SYSTEM.set_sql_trace_in_session(sid,serial,false),如果没有该步骤,可能跟踪文件中的信息不全,因为可能有一部分还在缓存中);

定位跟踪文件;

对步骤6的跟踪文件进行TKPROF,生成报告文件;

研究此报告文件,可以看到CPU、DISK、 QUERY、 COUNT等参数和execution plan(执行计划),优化开销最大的SQL;

重复执行步骤4)~9)直到达到所需的性能目标。

上一页  1 2 3 4 5 

Tags:SQL 语句 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接