这个语句可以优化一下性能么?

lingyun410 2010-06-08 04:30:43
Select A.ID,A.LB_CnName,A.LB_EnName,A.LB_Pinyin,Count(B.ID) As PoCount
From [CNode_Label] A
Right Join [CNode_Product] B
On CharIndex(','+Cast(A.ID As nVarChar(20))+',',B.PO_LabelLib)>0 And B.PO_StateNum In (5,6)
Where A.LB_StateNum In (5) And (CharIndex(',9,',A.LB_GroupIDStr)>0 And CharIndex(',1,',A.LB_GroupIDStr)>0)
Group By A.ID,A.LB_CnName,A.LB_EnName,A.LB_Pinyin,A.LB_OrderNum Having Count(B.ID)>0
Order By PoCount Desc,A.LB_OrderNum Desc,A.ID Desc
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨沙发 2010-06-09
  • 打赏
  • 举报
回复
优化表结构,现在结构不合理
永生天地 2010-06-08
  • 打赏
  • 举报
回复
Select A.ID,A.LB_CnName,A.LB_EnName,A.LB_Pinyin,Count(B.ID) As PoCount  
From [CNode_Label] A Right Join [CNode_Product] B
On CharIndex(','+Cast(A.ID As nVarChar(20))+',',B.PO_LabelLib)>0
where B.PO_StateNum In (5,6) --这个条件写在on连接里是无效的
and A.LB_StateNum =5
And (CharIndex(',9,',A.LB_GroupIDStr)>0 And CharIndex(',1,',A.LB_GroupIDStr)>0)
Group By A.ID,A.LB_CnName,A.LB_EnName,A.LB_Pinyin,A.LB_OrderNum
Having Count(B.ID)>0
Order By PoCount Desc,A.LB_OrderNum Desc,A.ID Desc
htl258_Tony 2010-06-08
  • 打赏
  • 举报
回复
出于这种需求,语句上看不出可以优化的地方
htl258_Tony 2010-06-08
  • 打赏
  • 举报
回复
你的语句应该不错了。
lingyun410 2010-06-08
  • 打赏
  • 举报
回复
现在数据库的数据还不多,查询速度就很慢。查询的时候CPU占用很高。这个语句能优化么?
dawugui 2010-06-08
  • 打赏
  • 举报
回复
没看出哪里还可以优化了,用chaindex等函数,索引失效了.
dawugui 2010-06-08
  • 打赏
  • 举报
回复
最好给出完整的表结构,测试数据,计算方法和正确结果.


发帖注意事项
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281

22,209

社区成员

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

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