北方站长站
客服热线:0632-5117766

一条SQL语句变得巨慢的原因及其解决方法

[2008-01-30 04:58:00] 作者:18193 来源:北方站长站

Tags:及其 解决 方法 原因 变得 语句 连接 ACCESS TABLE member.site

  

现象:一条SQL突然运行的特别慢。

select uidTable.column_value, first_name||' '||last_name, company, job_title, upper(member_level), upper(service_value)from (select * from table(select cast(multiset(select b from bbb)as Taaa) from dual)) uidTable,memberwhere uidTable.column_value = member.login_id(+) and member.site='alibaba' and member.site='test';

出错原因:用户增加了一个条件member.site=test,造成连接的顺序变化了,原来的驱动表是uidTable(最多1024条记录),现在变成了member表做驱动(600W条)。所以这条语句变的巨慢。

但是既然是外连接,为什么连接的顺序会改变呢?因为外连接的连接顺序不是由COST决定的,而是由连接的条件决定的。发现执行计划如下:

-------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost |--------------------------------------------------------| 0 | SELECT STATEMENT | | 1018 | 72278 | 8155 || 1 | NESTED LOOPS | | 1018 | 72278 | 8155 || 2 | VIEW | | 4072 | 69224 | 11 || 3 | COLLECTION ITERATOR SUBQUERY FETCH| | | | || 4 | TABLE ACCESS FULL | DUAL | 4072 | | 11 || 5 | TABLE ACCESS FULL | BBB | 41 | 287 | 2 || 6 | TABLE ACCESS BY INDEX ROWID | MEMBER | 1 | 54 | 2 ||* 7 | INDEX UNIQUE SCAN | MEMBER_SITE_LID_PK | 4 | | 1 |-------------------------------------------------

为什么根本就没有执行外连接呢?问题出在member.site='test'这个条件上,因为对外连接的表加了条件,造成外连接失效。改为member.site(+)='test'后,问题彻底解决。

---------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost |-----------------------------------------------------| 0 | SELECT STATEMENT | | 1018 | 72278 | 8155 || 1 | NESTED LOOPS | | 1018 | 72278 | 8155 || 2 | VIEW | | 4072 | 69224 | 11 || 3 | COLLECTION ITERATOR SUBQUERY FETCH| | | | || 4 | TABLE ACCESS FULL | DUAL | 4072 | | 11 || 5 | TABLE ACCESS FULL | BBB | 41 | 287 | 2 || 6 | TABLE ACCESS BY INDEX ROWID | MEMBER | 1 | 54 | 2 ||* 7 | INDEX UNIQUE SCAN | MEMBER_SITE_LID_PK | 4 | | 1 |-----------------------------------------------------------

(责任编辑:卢兆林)

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

下一篇链接:提高"SQL Server"性能的几种实用技术 (1)

上一篇链接:"Select"语句究竟是如何来使用索引的?

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面