2011-03-29 44 views
1

我有一個在數據倉庫上運行的查詢。我上個月跑了報告。它在x分鐘給了我一些結果。在不修改數據庫的情況下在同一數據庫上運行同一報表時,會在y分鐘內返回相同的結果。影響在數據庫上運行SQL所用時間的因素是什麼?

y> x。時間的差異非常大。

數據量和索引也是一樣的。他們沒有區別。

現在客戶要求我爲此提供一個理由。這有什麼可能的原因?

回答

2

您平倉離場

  • 是一個專用的服務器上運行的數據庫中的很多問題。
  • 您是從客戶端還是直接在服務器上運行報告。
  • 物理網絡已經發生變化,有一些設置被改變。
  • 沒有他們(意外)更改與服務器通信協議(TCP,命名管道,...)
  • 你試過整理
  • 有你重新啓動服務器
  • 你有一個執行計劃前後
2

這裏有幾個:

  1. 的倉庫中的數據量已經改變。
  2. 索引可能已被修改。
  3. 您的倉庫分散在不同的服務器之間,並且它們之間存在連接延遲......
  4. 您的數據庫服務器正在處理其他內容,因爲它有較少的內存和cpu以供您的報告運行。
+0

數據量沒有變化,索引也沒有變化。 – rgksugan 2011-03-29 06:33:43

2

查詢計劃最有可能發生了變化。數據中的一些細微差別已經將查詢優化器的計算推到了一個新的不太理想的計劃上。

相關問題