2012-12-07 61 views
2

假設我的選擇查詢花費了100美元,並且我有另一種方式來編寫兩個查詢(40 + 60)。最終都有相同的成本。查詢成本最佳實踐

我想知道什麼是最有效的方法。

回答

4

忽略成本。它不是調整的起始位置,它只是一個內部排名,用於Oracle爲給定的SQL語句選擇最佳計劃。無法使用成本來比較兩個不同的SQL語句以確定哪一個更好;即,您可以以較高的成本進行查詢,其速度更快,而且使用的資源要少於成本較低的查詢。

如果查詢是儘可能快地分爲二,然後把它作爲一個SQL(1個減往返做)。

+0

我(很奇怪)更好地瞭解了有關費用的性質和優化行動我花了一個AI後上課,哈哈 –

0

在我看來,如果要看你的數據庫允許並行的查詢。

如果可以的話,你應該在運行第二種方式查詢:成本是一樣的,但你得到的結果更快。

例如,SQLSERVER允許您運行並行查詢,看看here

在oracle中,例如,它的解釋here

0

在這種情況下,你應該測試場景(一個查詢,耗資100個兩個查詢,花費40 + 60)...至少嘗試每個場景的查詢會在一個小時內執行死刑的數量或甚至一天,記得塗抹於每個場景的測試之間的ALTER SYSTEM沖洗(緩衝區高速緩存和共享池)...