首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2008 很奇怪的一个sql有关问题

2014-01-21 
sql2008 很奇怪的一个sql问题SELECTUserId, UserName,SUM(Amount) AS allBuyMoney,FROMCp_PrintOut WITH (

sql2008 很奇怪的一个sql问题
SELECT     UserId,
 UserName,
                                
                                SUM(Amount) AS allBuyMoney,
  
                      FROM      Cp_PrintOut WITH ( NOLOCK )
                      WHERE     1 = 1
                      AND ReceiveTime BETWEEN '2013-12-01 0:00:00'
                                                AND     '2014-1-5 0:00:00'
                                AND Status >2
GROUP BY UserId,UserName
sql语句一样 当我把时间 调整到eceiveTime BETWEEN '2013-1-01 0:00:00' AND     '2014-1-5 0:00:00'
速度反而快
原因大概知道 当时间段小的时候sql自动按照sort group by 来执行
而相反 按照hash group by 执行 
求解 如何才能都按照 hash group by 执行
因为在我执行时间短的范围内会超时 执行时间范围大的反而10秒就查询出来
求高手解答
在线急等……
[解决办法]
改成这样:

SELECT     UserId,
 UserName,
                                
                                SUM(Amount) AS allBuyMoney,
  
                      FROM      Cp_PrintOut WITH ( NOLOCK )
                      WHERE     1 = 1
                      AND ReceiveTime BETWEEN '2013-12-01 0:00:00'
                                                AND     '2014-1-5 0:00:00'
                                AND Status >2
option(hash group)

热点排行