ORACLE中用EXISTS代替DISTINCT的疑问? 因为两个出来的结果是一样,而exists的效率要高,它是找到符合条件就直接返回。所以可以代替 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为两个出来的结果是一样,而exists的效率要高,它是找到符合条件就直接返回。所以可以代替 EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果 -->经测试此写法SQLplus下比上面的写法多一次逻辑读,而在Toad下两者结果一致这个也是从别人那里看到的, 出处不记得了 当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT。一般可以考虑用EXIST替换, EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果其中X的意思:因为exists只是看子查询是否有结果返回,而并不关心返回的是什么内容,因此通常建议写一个常量,至少性能不可能比select 一个具体的字段出来差,而某些情况下,select具体的字段出来性能可能比select 一个常量出来要差得多。 也就是说,若不是提交一个包含一对多表信息的查询EXISTS就不能起到替代DISTINCT的作用? 用EXISTS,只要找到第一个符合条件的值,就返回了,而不管后面有多少条符合条件的重复记录。而DISTINCT,是全扫描,必须查找全部符合条件的记录后,再返回唯一值。这样一来,性能差异就大了。 写了个SQL语句,用到序列,希望大神指点一下 求 Oracle database 10g sql 开发指南的电子版 触发器中列的更新如何判断 关于索引和唯一约束的问题 PROC程序在IBM机上编译不过去,HP上是没有问题的 DBA平时应该注意数据库的哪些问题呢? 有经验的大虾,进来看看这个问题怎么解决!! 第一次用Oracle,SQL语句的问题! 在sqlplus 中有没有类似 dos 的 cls(清屏) 命令? sqlplus-【desc】命令: sys/system用户 为啥显示‘对象不存在’呢? KPEDBG_HDL_PUSH_FCPTRMAX(在线等,求解释) 数据库转换
-->经测试此写法SQLplus下比上面的写法多一次逻辑读,而在Toad下两者结果一致这个也是从别人那里看到的, 出处不记得了
其中X的意思:
因为exists只是看子查询是否有结果返回,而并不关心返回的是什么内容,因此通常建议写一个常量,至少性能不可能比select 一个具体的字段出来差,而某些情况下,select具体的字段出来性能可能比select 一个常量出来要差得多。
也就是说,若不是提交一个包含一对多表信息的查询EXISTS就不能起到替代DISTINCT的作用?
而DISTINCT,是全扫描,必须查找全部符合条件的记录后,再返回唯一值。这样一来,性能差异就大了。