[問題] 千萬筆資料中找出max值

看板C_Sharp (C#)作者 (孤單的人)時間11年前 (2014/04/03 22:24), 編輯推噓2(2011)
留言13則, 6人參與, 最新討論串1/1
最近遇到的問題 想上來問問看看有沒有人有更好的解法 就是 有一個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

04/04 00:43, , 1F
加index吧
04/04 00:43, 1F

04/04 15:53, , 2F
當然有加阿 有dba負責
04/04 15:53, 2F

04/04 19:41, , 3F
一次搜尋10萬就好了,硬體負擔輕點
04/04 19:41, 3F

04/04 19:55, , 4F
下數值條件先把範圍縮小如何?例如1000以上
04/04 19:55, 4F

04/04 19:56, , 5F
應該至少知道數值範圍大概是多少吧?從有可能的最大數值試
04/04 19:56, 5F

04/04 19:56, , 6F
直到數量減少到很少的時候再加max下去?
04/04 19:56, 6F

04/05 00:50, , 7F
切partiontable
04/05 00:50, 7F

04/05 23:47, , 8F
我也想切阿 可是TABLE是別部門的....
04/05 23:47, 8F

04/06 19:35, , 9F
既然對著這個TABLE下SQL碼很慢
04/06 19:35, 9F

04/06 19:36, , 10F
那就自已造1個TABLE 紀錄各個欄位的最大值
04/06 19:36, 10F

04/06 19:37, , 11F
取出並紀錄最大值的過程就可以慢慢跑 管他花10分還是20分
04/06 19:37, 11F

04/06 19:37, , 12F
專案在執行時存取自已造的那個TABLE
04/06 19:37, 12F

04/06 19:38, , 13F
(雖然這方法很爛 XDD)
04/06 19:38, 13F
文章代碼(AID): #1JFMy7RH (C_Sharp)
文章代碼(AID): #1JFMy7RH (C_Sharp)