sql加了一个条件,反而变慢了?!

nbcty 2013-12-31 02:13:33
我有个sql类似如下:
select * from(
select a.col2,b.col1。。。 from a,b,c,d,e where a.col1=b.col2 and b.col3=c.col4。。。。。

where a.col2 is not null
order by a.col2,b.col1

内层子查询单独执行瞬间完成,但没有数据。加了外层做进一步筛选,像上面那么写,也是瞬间完成,没有数据。
当我把外层where条件改为a.col2='xxx',sql就要执行5分钟以上,而且没有数据返回。
我把这个条件加到子查询的where条件里,单独测试一下内层sql,也变得巨慢,这是为什么???(子查询里除了连表也有过滤数据的条件)

我单独拿a.col2='xxx'到a表中查询很快呀。
...全文
1876 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunboy_yf 2014-01-03
  • 打赏
  • 举报
回复
看看修改前和修改后的执行计划,然后比较一下。
_拙计 2014-01-02
  • 打赏
  • 举报
回复
少年 你再好好仔细检查检查吧
  • 打赏
  • 举报
回复
这肯定是疏忽造成的,这各种变化...
nbcty 2014-01-02
  • 打赏
  • 举报
回复
之前说,子查询单独执行不报错。我刚才又试了一下,把子查询拿出来,加个order by也报同样的错。
nbcty 2014-01-02
  • 打赏
  • 举报
回复
考,我又把sql改了,没有distinct了,还报“无效数字”,看来不是distinct的问题
nbcty 2014-01-02
  • 打赏
  • 举报
回复
我把sql改了,上面的问题没有了。 但又出来一个问题,单独执行子查询,不报错,但是和外层sql合起来执行,就报“无效数字”,Toad提示是子查询中使用了to_number()的一行有问题?! 试了半天,我发现是因为外层使用了distinct导致的,使用了distinct以后,就有问题,不使用就没问题,这是为什么?
youqi1984 2014-01-02
  • 打赏
  • 举报
回复
执行计划是关键
北京-小北 2014-01-01
  • 打赏
  • 举报
回复
看看2次的执行计划呢
_拙计 2013-12-31
  • 打赏
  • 举报
回复
也不至于要那么久吧
nbcty 2013-12-31
  • 打赏
  • 举报
回复
引用 1 楼 lu010610 的回复:
我很奇怪 你这样写居然没有错?where a.col2 is not null order by a.col2,b.col1这个a,b表没定义吧
为了让大家看明白,实际里没有a.b.
_拙计 2013-12-31
  • 打赏
  • 举报
回复
我很奇怪 你这样写居然没有错?where a.col2 is not null order by a.col2,b.col1这个a,b表没定义吧
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧