看板 C_Sharp 關於我們 聯絡資訊
最近遇到的問題 想上來問問看看有沒有人有更好的解法 就是 有一個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://www.ptt.cc/bbs/C_Sharp/M.1396535047.A.6D1.html
ychsutw:加index吧 04/04 00:43
g66932007:當然有加阿 有dba負責 04/04 15:53
kevin888:一次搜尋10萬就好了,硬體負擔輕點 04/04 19:41
m339606:下數值條件先把範圍縮小如何?例如1000以上 04/04 19:55
m339606:應該至少知道數值範圍大概是多少吧?從有可能的最大數值試 04/04 19:56
m339606:直到數量減少到很少的時候再加max下去? 04/04 19:56
rex1224:切partiontable 04/05 00:50
g66932007:我也想切阿 可是TABLE是別部門的.... 04/05 23:47
Eleganse:既然對著這個TABLE下SQL碼很慢 04/06 19:35
Eleganse:那就自已造1個TABLE 紀錄各個欄位的最大值 04/06 19:36
Eleganse:取出並紀錄最大值的過程就可以慢慢跑 管他花10分還是20分 04/06 19:37
Eleganse:專案在執行時存取自已造的那個TABLE 04/06 19:37
Eleganse:(雖然這方法很爛 XDD) 04/06 19:38