三张表 T_OrderInfo  T_OrderDtl_Info  T_Counter_Info主外键T_OrderInfo.OrderId=T_OrderDtl_Info.OrderIdT_OrderDtl_Info.CounterId=T_Counter_Info.CounterIdsql语句: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)这个 怎么优化????

解决方案 »

  1.   

    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()
    语句很简单,没有什么可优化的
      

  2.   


    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)
    这个是我后来写的   两段 哪个好点??
      

  3.   

    两句的效率是一样的  查询分析器会自动优化
    你的语句已经够简单的  需要做的是在连接字段OrderId,CounterId这些上加索引
      

  4.   

    资源共享:
    SQL Server数据库的代码优化实例:
    http://database.51cto.com/art/201108/285253.htm