我有一個約1300萬行的表。每行代表特定日期特定時間內特定項目的某種類型的度量。緩存一個非常緩慢的查詢結果集
我有一個查詢,根據測量類型找到這些值的總和或平均值。這很慢,就像幾分鐘。
我們有一些利用這個查詢結果的報告頁面,但是頁面加載需要多分鐘是不可接受的。到目前爲止,我的解決方案是將查詢的結果緩存在我稱之爲彙總表的內容中。
問題是刷新彙總表的夜間運行腳本運行時間太長。我甚至沒有試圖一次刷新整個彙總表,但它仍然需要很長時間。 (通過「太長」我的意思是提出錯誤,刷新工作沒有完成。)
我有一種預感,我面臨的挑戰是以錯誤的方式進行事情的結果,解決方案可能不會調整一些東西來削減1%的查詢運行時間,而是以完全不同的方式處理問題。
任何建議,將不勝感激。如果我不是以很好的方式提出這個問題,我很抱歉;我不知道如何更好地制定它。樂於提供澄清或更多細節。
下面是查詢的簡化版本,需要永久運行。 (即使這個簡化版需要相當長的時間。)
select date(calc_dt),
project_id,
calculation_type_cd,
sum(result)
from calc_calculation_results
group by date(calc_dt),
project_id,
calculation_type_cd
每晚的工作基本上是一個SELECT INTO
負責這種查詢的結果,並將它們放入我的彙總表。 result
列是我們爲報告目的感興趣的值。
你使用任何指標?什麼錯誤正在提出?你是說這個查詢在某個時候死了嗎? –
真的Jason擁有一個14k的代表,你真的應該知道這個問題模糊不清,因爲這只是無法回答。 – RiggsFolly
@TimBiegeleisen我得到[這個錯誤](http://stackoverflow.com/questions/5836623/getting-lock-wait-timeout-exceeded-try-restarting-transaction-even-though-im)我碰巧遇到問五年前的另一個問題。我桌子上的「SHOW INDEX FROM」確實揭示了許多索引,但我不知道如何分辨相關的內容。 –