作者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/m.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