学习,学习,学习 BI/biztalk/infopath/sharepoint,呵呵。 学习没有止境。。。 博客最新内容迁移至: http://www.cleocn.com
posted on 2006-11-01 18:22 无为而为-凡事从积极的态度做起 阅读(6917) 评论(17) 编辑 收藏
不错. 回复 引用 查看
第一个查询中 ComFlow_1在哪里? 回复 引用
楼上的兄弟看的真仔细 回复 引用 查看
大哥,你的表明为什么不用缩写呢,看着好费劲呀,好长呀。 不过效果上竟然差距这么大 不错的在线个人知识管理网站 *** 美娃~西西 大家看看呀 回复 引用
修改后还是有OR啊,慢的原因应该不完全是它 回复 引用 查看
dbo.ComFlow.SalType IN (N'促销', N'流向退货', N'多级流向') AND dbo.ComFlow.CustCode = dbo.Customer.CustCode Or ComFlow_1.SalType IN (N'自然流向', N'自然流向退货') AND ComFlow_1.OutCustCode = Customer_1.CustCode应该是dbo.ComFlow.SalType IN (N'促销', N'流向退货', N'多级流向') AND dbo.ComFlow.CustCode = dbo.Customer.CustCode Or ComFlow.SalType IN (N'自然流向', N'自然流向退货') AND ComFlow.OutCustCode = Customer.CustCode 比较粗心,第一个语句是由第二个语句还原回去的,忘了修改了。 没有使用缩写是因为使用SQL Server的视图编辑器编辑的。 回复 引用 查看
嘻嘻,提示:使用SQL Server的视图编辑器也是可以使用表名简写的 回复 引用 查看
博主的SQL是手工写的还是自动生成的,如果手动写那么长的语句请痛苦呀。 回复 引用 查看
楼主这个超级大SQL语句应是放在视图里面来用的,但是看到 ON dbo.ComFlow.SalType IN (N'促销', N'流向退货', N'多级流向') 有这样的实时真实值存在的SQL语句,放在视图里显然不合适,不过我想执行慢的原因并非楼主所说的那个,而是这些表结构设计存在严重问题导致.我想如果你的表结构清淅,这样的语句最多3秒钟就OK了(当然也取决于你的数据量). 回复 引用 查看
應該把表明縮寫,不管是view還是其它都可以的阿 回复 引用 查看
修改前后逻辑上不等价,修改前是A and B or C and D,修改后是(A and B) or (C and D) 如果不是你的笔误,修改之前Join出来的结果应该比修改之后多,或者至少是dbo.ComFlow INNER JOIN dbo.Customer这个中间操作结果要多很多,所以这应该是前者比后者慢的原因 理论上讲你的修改应该并没有起到优化的作用 回复 引用 查看
我觉得把两个sql的查询计划图贴出来一比较就可以看到原因了。 回复 引用 查看
@RicCC AND优先级高于Or,不信你可以到SQL Server的视图编辑器试试看, 你加了括号它还会自动去掉的括号。 回复 引用 查看
讲得好!! 回复 引用 查看
对于内联把where后的条件提至最早允话出现的位置将显著提升速度,因常量把相当部分数据限制住了 回复 引用
没想到一个地方的不懂就相差这么大,学习了。 回复 引用 查看
因为使用OR的时候是不能使用索引扫描的,导致性能下降很大,所以尽量不要使用OR 回复 引用
昵称: [登录] [注册]
主页:
邮箱:(仅博主可见)
验证码: 看不清,换一个
评论内容:
登录 注册
[使用Ctrl+Enter键快速提交评论]
Powered by: 博客园 Copyright © 无为而为-凡事从积极的态度做起