适时增加Distinct关键字可提高查询效率Oracle认证考试

文章作者 100test 发表时间 2010:01:24 16:33:11
来源 100Test.Com百考试题网


  只有增加DISTINCT关键字,Oracle必然需要对后面的所有字段进行排序。以前也经常发现由于开发人员对SQL不是很理解,在SELECT列表的20多个字段前面添加了DISTINCT,造成查询基本上不可能执行完成,甚至产生ORA-7445错误。所以一直向开发人员强调DISTINCT给性能带来的影响。

  没想到开发人员在测试一条大的SQL的时候,告诉我如果加上了DISTINCT,则查询大概需要4分钟左右可以执行完,如果不加DISTINCT,则查询执行了10多分钟,仍然得不到结果。

  首先想到的是可能DISTINCT是在子查询中,由于加上了DISTINCT,将第一步结果集缩小了,导致查询性能提高,结果一看SQL,发现DISTINCT居然是在查询的最外层。

  由于原始SQL太长,而且牵扯的表太多,很难说清楚,这里模拟了一个例子,这个例子由于数据量和SQL的复杂程度限制,无法看出二者执行时间上的明显差别。这里从两种情况的逻辑读对比来说明问题。

  首先建立模拟环境:

  SQL


相关文章


Oracle10G使用数据泵(EXPDP和IMPDP)Oracle认证考试
数据泵的网络导入Oracle认证考试
user和schema的区别和联系Oracle认证考试
oracle中to_date格式Oracle认证考试
适时增加Distinct关键字可提高查询效率Oracle认证考试
Oracle正则表达式简单例子Oracle认证考试
重装系统后ORACLE的恢复Oracle认证考试
Oracle认证辅导:Oracle冷备份Oracle认证考试
Oracle里面地数据字典技术初级初步掌握Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛