Cof*_*fee 6 sql sql-server group-by query-optimization
我已经等了一个多小时了,所以我知道我可能做错了什么.是否有有效的方法来定制此查询:?
select RespondentID, MIN(SessionID) as 'SID'
from BIG_Sessions (nolock)
where RespondentID in (
1418283,
1419863,
1421188,
1422101,
1431384,
1435526,
1437284,
1441394,
/* etc etc THOUSANDS */
1579244 )
and EntryDate between
'07-11-2011' and '07-31-2012'
GROUP BY RespondentID
Run Code Online (Sandbox Code Playgroud)
我知道我的日期范围很大,但我不能改变那个部分(日期遍布全部).
另外,原因MIN(SessionID)是因为否则我们会为每个响应者获得许多SessionID,并且一个就足够了(它在字母数字ID上使用MIN,如ach2a23a-adhsdx123 ......并按字母顺序获取第一个)
谢谢
例如:
select RespondentID, MIN(SessionID) as 'SID'
from BIG_Sessions (nolock)
inner join RespondentsFilterTable
on BIG_SESSIONS.RespondentID = RespondentsFilterTable.RespondentID
where EntryDate between '07-11-2011' and '07-31-2012'
GROUP BY BIG_Sessions.RespondentID
Run Code Online (Sandbox Code Playgroud)
您也可以为EntryDate和SessionID添加索引,但如果您经常添加big_sessions,这可能会在其他地方适得其反
通常,您可以通过研究估计的(或可能的实际)执行计划来获得有关如何提高查询性能的提示.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |