易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle数据库Where条件执行顺序

1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.
  例如:
  (低效)
  SELECT … from EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’ AND 25 < (SELECT COUNT(*) from EMP WHERE MGR=E.EMPNO);
  (高效)
  SELECT … from EMP E WHERE 25 < (SELECT COUNT(*) from EMP WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = ‘MANAGER’;
  2.SELECT子句中避免使用’*’
  当在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法.可是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.
  3.使用表的别名(Alias)
  当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误.
  注:Column歧义指的是由于SQL中不同的表具有相同的Column名,当SQL语句中出现这个Column时,SQL解析器无法判断这个Column的归属


相关文档:

ORACLE SQL语句优化


1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection ......

Oracle中的Hash Join祥解

Oracle中的Hash Join祥解
一、  hash join概念
     Hashjoin(HJ)是一种用于equi-join(而anti-join就是使用NOT IN时的join)的技术。
在Oracle中,它是从7.3开始引入的,以代替sort-merge和nested-loop join方式,
提高效率。在CBO(hash join只有在CBO才可能被使用到)模式下,优化器计算代 ......

Oracle中的decode用法

Oracle中的decode用法
Decode(条件,值1,显示值1,值2,显示值2,…… 值n,显示值n)
应用举例:
select t.res_id,
       t.res_size || '(kb)' as res_size,
       decode(t.res_type,1,'模板区','0','文档区') res_type,
   ......

oracle死锁查询及处理

查询发生死锁的select语句
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
---------------------------------------------------------
关于数据库死锁的检查方法
一、        ......

Oracle数据导入导出imp/exp命令使用

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
 
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号