求优化 sql语句

dandings 2011-08-25 11:40:31


三张表 T_OrderInfo T_OrderDtl_Info T_Counter_Info

主外键

T_OrderInfo.OrderId=T_OrderDtl_Info.OrderId

T_OrderDtl_Info.CounterId=T_Counter_Info.CounterId





sql语句:

select
T_OrderInfo.OrderId,T_OrderInfo.OrderPrice,T_OrderInfo.InsertTime
from
dbo.T_OrderInfo,dbo.T_OrderDtl_Info,T_Counter_Info
where T_OrderInfo.OrderId=T_OrderDtl_Info.OrderId
and T_OrderDtl_Info.CounterId=T_Counter_Info.CounterId
and T_Counter_Info.CounterId=1
and T_OrderInfo.InsertTime < getdate()
and T_OrderInfo.InsertTime > (getdate()-1)



这个 怎么优化????
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxfjoy 2011-08-26
  • 打赏
  • 举报
回复
资源共享:
SQL Server数据库的代码优化实例:
http://database.51cto.com/art/201108/285253.htm
--小F-- 2011-08-25
  • 打赏
  • 举报
回复
两句的效率是一样的 查询分析器会自动优化


你的语句已经够简单的 需要做的是在连接字段OrderId,CounterId这些上加索引
dandings 2011-08-25
  • 打赏
  • 举报
回复

select
T_OrderInfo.OrderId,T_OrderInfo.OrderPrice,T_OrderInfo.InsertTime
from
T_OrderInfo
inner join T_OrderDtl_Info on
T_OrderInfo.OrderId=T_OrderDtl_Info.OrderId
inner join T_Counter_Info on
T_OrderDtl_Info.CounterId=T_Counter_Info.CounterId
where T_Counter_Info.CounterId=1
and T_OrderInfo.InsertTime < getdate()
and T_OrderInfo.InsertTime > (getdate()-1)


这个是我后来写的 两段 哪个好点??
AcHerat 元老 2011-08-25
  • 打赏
  • 举报
回复
相关字段加索引,这语句没啥可优化的。
chuanzhang5687 2011-08-25
  • 打赏
  • 举报
回复
select  
T_OrderInfo.OrderId,T_OrderInfo.OrderPrice,T_OrderInfo.InsertTime
from
dbo.T_OrderInfo,dbo.T_OrderDtl_Info,T_Counter_Info
where T_OrderInfo.OrderId=T_OrderDtl_Info.OrderId
and T_OrderDtl_Info.CounterId=T_Counter_Info.CounterId
and T_Counter_Info.CounterId=1
and T_OrderInfo.InsertTime between(getdate()-1)
and getdate()

语句很简单,没有什么可优化的
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复
首先把你的所有表都用别名
要么看一眼就烦,何谈来优化

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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