我正在運行這個SQL查詢,它給了我一個錯誤,當我重新安排列和使DISTINCT k.Column_1先來它的工作,但然後永遠運行,似乎是一個昂貴的。我怎樣才能糾正這一點,優化等?如何更正此SQL查詢並對其進行優化?
SELECT
k.Column_2, DISTINCT k.Column_1, s.Column_3, s.Column_4, s.Column_5, s.Column_6, s.Column_7,
s.Column_8, s.Column_9, s.Column_10, s.Column_11, t.Column_5,
t.Column_6, t.Column_7, t.Column_8, t.Column_9, t.Column_10,
t.Column_11, r.Column_3,
p.Column_2, p.Column_3, p.Column_4, p.5, p.Column_6, p.Column_7, p.Column_8, p.Column_9
FROM table_1 k
LEFT JOIN table_2 s
ON k.Column_1 = s.Column_1
LEFT JOIN table_3 t
ON k.Column_1 = t.Column_1
LEFT table_4 r
ON k.Column_1 = r.Column_1
LEFT JOIN table_5 p
ON k.Column_1 = p.Column_1
我現在運行這個編輯SQL查詢,它是運行下去,我想如果可能的話進行優化。
Column_1是索引。
SELECT DISTINCT k.Column_1, k.MONTH,
SUM(s.Column_3) Column_3,
SUM(s.Column_4) Column_4,
SUM(s.Column_5) Column_5,
SUM(s.Column_6) Column_6,
SUM(s.Column_7) Column_7,
SUM(s.Column_8) Column_8,
SUM(s.Column_9) Column_9,
SUM(s.Column_10) Column_10,
SUM(s.Column_11) Column_11,
SUM(t.Column_5) Column_5,
SUM(t.Column_6) Column_6,
SUM(t.Column_7) t.Column_7,
SUM(t.Column_8) Column_8,
SUM(t.Column_9) Column_9,
SUM(t.Column_10) Column_10,
SUM(t.Column_11) Column_11,
SUM(r.Column_3) Column_3,
SUM(p.Column_2) Column_2,
SUM(p.Column_3) Column_3,
SUM(p.Column_4) Column_4,
SUM(p.Column_5) Column_5,
SUM(p.Column_6) Column_6,
SUM(p.Column_7) Column_7,
SUM(p.Column_8) Column_8,
SUM(p.Column_9) Column_9
FROM table_1 k
LEFT JOIN table_2 s
ON k.Column_1 = s.Column_1
LEFT JOIN table_3 t
ON k.Column_1 = t.Column_1
LEFT table_4 r
ON k.Column_1 = r.Column_1
LEFT JOIN table_5 p
ON k.Column_1 = p.Column_1
GROUP BY k.Column_1, k.MONTH
這幾乎不是你真正想要做的。我建議以減少的聯接數量和輸入數據和期望的結果爲例提出另一個問題。 –
獨特總是一個昂貴的操作,table_1有多大?您可以使用派生表更快地完成此操作。另外s.k.column_4沒有意義。哪個表是column_4? – HLGEM
請描述一些數據的含義在這裏。它在如何呈現查詢方面有所不同。既然你不能區分只有一列,你想達到什麼目的?在數據前後給我們提供你想要達到的目標。 – HLGEM