sql - 获取每个用户的最大日期记录并将其插入临时表 - 性能问题
问题描述
我需要从语句表中获取每个用户帐户的 maxdate 并插入到临时表中。语句表有超过 4000 万条记录。我尝试了以下查询,耗时超过 4 分钟。有没有更好的方法来做到这一点?
select useraccount, max(date)
into #temptable
from statement
group by useraccount
解决方案
分组可能很昂贵。而且 4 分钟对于处理和创建一个大表来说似乎并没有那么糟糕。但是如果你有一个索引(useraccount, date)
,你可以尝试:
select useraccount, date
into #temptable
from statement s
where date = (select max(s2.date) from statement s2 where s2.useraccount = s.useraccount);
推荐阅读
- javascript - peer-peer 没有在所有浏览器中使用 peerJS 连接
- c++ - 如何阻止英特尔 icpc 抱怨对 basic_string 的未定义引用?
- python-3.x - Python3子进程:获取8位以上的进程返回码
- android - 使用超过 25 个航点/坐标的 MapBox 绘制路线/折线
- git - 为什么 Git 子树一遍又一遍地处理相同的提交?
- javascript - 检索可填充 PDF 的值并在 HTML 中的 Javascript 中使用
- visual-studio - 为什么不能使用 SQLProvider 连接到 SqlServer 并获取数据?
- python - 如何以 Google 文档字符串样式格式化长行参数描述
- javascript - 如何在不循环的情况下从 div 获取子元素?
- ios - 重新加载 UICollectionView 部分并保留滚动位置