ORACLE PERFORMANCE SQL TUNING

原创 2004年10月22日 11:14:00
   建议使用者,亲自测试后再使用,不要盲目使用下面的方法和建议!

17.       使用表的别名(Alias)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误.

 

(译者注: Column歧义指的是由于SQL中不同的表具有相同的Column,SQL语句中出现这个Column,SQL解析器无法判断这个Column的归属)

 

18.       EXISTS替代IN

在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(NOT EXISTS)通常将提高查询的效率.

 

低效:

SELECT *

FROM EMP (基础表)

WHERE EMPNO > 0

AND DEPTNO IN (SELECT DEPTNO

FROM DEPT

WHERE LOC = ‘MELB’)

   

高效:

SELECT *

FROM EMP (基础表)

WHERE EMPNO > 0

AND EXISTS (SELECT ‘X’

FROM DEPT

WHERE DEPT.DEPTNO = EMP.DEPTNO

AND LOC = ‘MELB’)

 

 

 (译者按: 相对来说,NOT EXISTS替换NOT IN 将更显著地提高效率,下一节中将指出)

 

 

19.       NOT EXISTS替代NOT IN

在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历).  为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)NOT EXISTS.

 

例如:

SELECT …

FROM EMP

WHERE DEPT_NO NOT IN (SELECT DEPT_NO

                         FROM DEPT

                         WHERE DEPT_CAT=’A’);

 

为了提高效率.改写为:

 

(方法一: 高效)

SELECT ….

FROM EMP A,DEPT B

WHERE A.DEPT_NO = B.DEPT(+)

AND B.DEPT_NO IS NULL

AND B.DEPT_CAT(+) = ‘A’

 

 

(方法二: 最高效)                ---可以采用

SELECT ….

FROM EMP E

WHERE NOT EXISTS (SELECT ‘X’

                    FROM DEPT D

                    WHERE D.DEPT_NO = E.DEPT_NO

                    AND DEPT_CAT = ‘A’);

 

ORACLE SQL Performance Tuning

Oracle Database上的设置对Performance的影响很大,如Shared Pool Size、Buffer Cache Size、SGA Structures、Database I/O...
  • cunxiyuan108
  • cunxiyuan108
  • 2012年04月19日 00:23
  • 843

Oracle Performance Tuning Overview 翻译(Oracle性能优化概述 自己的中英文比对翻译)

Oracle® Database Performance Tuning Guide 10g Release 2 (10.2) B14211-03 Home Book List ...
  • xiaohai798
  • xiaohai798
  • 2014年06月23日 23:26
  • 2752

ocp-408

QUESTION NO: 408 You want to analyze a SQL Tuning Set (STS) using SQL Performance Analyzer in a tes...
  • xuejiayue1105
  • xuejiayue1105
  • 2015年10月15日 09:36
  • 1140

Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning

Oracle Wait Interface性能诊断与调整实践指南(比较薄但比较实用) 
  • llmmysun
  • llmmysun
  • 2006年04月17日 14:09
  • 1485

使用ORACLE SQL Tuning advisor快速优化低效的SQL语句

使用ORACLE SQL Tuning advisor快速优化低效的SQL语句 (SQL Tuning advisor、SQL_PROFILE)
  • ljunjie82
  • ljunjie82
  • 2013年09月14日 18:58
  • 1740

OCP 1Z0 053 207

207.You want to analyze a SQL Tuning Set (STS) using SQL Performance Analyzer in a test database.  ...
  • jgmydsai
  • jgmydsai
  • 2014年07月26日 14:32
  • 1054

读书 《Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning》

花了将近一个月的时间,看完了电子版的《Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning》   ...
  • edwzhang
  • edwzhang
  • 2013年01月05日 09:59
  • 743

WebSphere Application Server Performance Tuning Toolkit

WebSphere® Application Server Performance Tuning Toolkit 是一款基于 Eclipse 的智能工具,旨在帮助用户通过使用数据收集、数据分析和统计数...
  • Angel_He
  • Angel_He
  • 2014年08月30日 22:30
  • 1228

Performance Tuning Guide

文中注释处以符号"*"加章节数字标记,具体在章节最后统一详细说明。 chapter 6  Automatic performance diagnostics Sql语句中尽量不要直接使用具体变量值进行...
  • battlehawk
  • battlehawk
  • 2010年04月10日 21:16
  • 672

oracle sql tuning之非常实用的4条sql语句

--查看report_tuning_task selectdbms_sqltune.report_tuning_task('sql_tuning_DM2_ZS_ZDSYQYRKHXS') fromdu...
  • u011538954
  • u011538954
  • 2016年09月26日 12:10
  • 473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE PERFORMANCE SQL TUNING
举报原因:
原因补充:

(最多只允许输入30个字)