作者g66932007 (孤单的人)
看板C_Sharp
标题[问题] 千万笔资料中找出max值
时间Thu Apr 3 22:24:05 2014
最近遇到的问题
想上来问问看看有没有人有更好的解法
就是 有一个table(别的部门的),
至於总笔数未知(多到sql都跑不动)
新的案子有个栏位要显示各个产品某数值历年来的最大值,
由於下
select max(column) from table
where productName='AAA'
根本跑不动= =
我的想法是
加个时间条件(每半年)
select max(column) from table
where productName='AAA'
and createTime....
也就不断以每半年去捞最大值的方式去比较,直到比出真正的最大值
这样以後新进来的产品也只要跟真正的最大值去比即可
full scan找出真正最大值的方式也只要做一次而已
有人有更好的办法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.110.210.52
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1396535047.A.6D1.html
1F:推 ychsutw:加index吧 04/04 00:43
2F:→ g66932007:当然有加阿 有dba负责 04/04 15:53
3F:→ kevin888:一次搜寻10万就好了,硬体负担轻点 04/04 19:41
4F:→ m339606:下数值条件先把范围缩小如何?例如1000以上 04/04 19:55
5F:→ m339606:应该至少知道数值范围大概是多少吧?从有可能的最大数值试 04/04 19:56
6F:→ m339606:直到数量减少到很少的时候再加max下去? 04/04 19:56
7F:→ rex1224:切partiontable 04/05 00:50
8F:→ g66932007:我也想切阿 可是TABLE是别部门的.... 04/05 23:47
9F:推 Eleganse:既然对着这个TABLE下SQL码很慢 04/06 19:35
10F:→ Eleganse:那就自已造1个TABLE 纪录各个栏位的最大值 04/06 19:36
11F:→ Eleganse:取出并纪录最大值的过程就可以慢慢跑 管他花10分还是20分 04/06 19:37
12F:→ Eleganse:专案在执行时存取自已造的那个TABLE 04/06 19:37
13F:→ Eleganse:(虽然这方法很烂 XDD) 04/06 19:38