此sql能否优化,100多万行数据

shasha483 2012-07-13 04:08:30
此sql能否优化,view_zy_detail_charge_b 中146多万行数据, yb_yinghai_zy_mx 91万多行
优化一下,不使用not exists,请高手指点。。。

select * from view_zy_detail_charge_b a
where inpatient_no = '2011102166'
and admiss_times = 3
and not exists (select 1 from yb_yinghai_zy_mx b where a.detail_sn = b.yka105)
...全文
261 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2012-07-15
  • 打赏
  • 举报
回复
视图条件是否建立inpatient_no和admiss_times建立复合索引。
具体要看一下执行计划是怎样的。
筱筱澄 2012-07-15
  • 打赏
  • 举报
回复
view_zy_detail_charge_b 关键问题在你这个视图了

视图只是一个查询,并不能优化效率,所以你的贴出来完整的脚本才好说问题所在。
luckings 2012-07-15
  • 打赏
  • 举报
回复

select * from view_zy_detail_charge_b a left join yb_yinghai_zy_mx b on a.detail_sn = b.yka105
where inpatient_no = '2011102166'
and admiss_times = 3 and b.主键 is null

对视图做好条件限制,detail_sn,inpatient_no与yka105字段做好索引。
發糞塗牆 2012-07-14
  • 打赏
  • 举报
回复
select a.* from
view_zy_detail_charge_b a left join yb_yinghai_zy_mx b on a.detail_sn = b.yka105
where a.inpatient_no = '2011102166'
and a.admiss_times = 3
and b.主键 IS not null

针对上面查询,对相关的表做好索引。
唐诗三百首 2012-07-13
  • 打赏
  • 举报
回复
view_zy_detail_charge_b是视图?

最好把视图代码拆分出来,把where子句条件加进去.
中国风 2012-07-13
  • 打赏
  • 举报
回复
最好的分析方法就是看执行计划,首先优化占用资源都多的步骤
中国风 2012-07-13
  • 打赏
  • 举报
回复
视图?

把条件列建上索引

如果是同一个表建上复合索引

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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