DSS 系統的特征是從大量的數據中產生有意義的報告。DSS 應用可能會經常與 OLTP 一起使用,但因為它們的設計要求差異很大,把 OLTP 系統用於決策支持不是好的主意。OLTP 的用戶一般很多,而 DSS 系統的用戶一般較少。決策支持系統的例子有與定單錄入系統(OLTP系統)一起工作的現金流預測工具,該工具可以幫助決定需要多大的現金儲備。另一個決策支持的例子是客戶需求分析工具,該工具可以找出某個地域客戶對哪個產品購買量最大。
決策支持系統的主要特征是:
讀取大容量的數據,經常使用全表掃描作為存取數據的方法。
極少量地更新數據。一般而言,從OLTP 系統的數據(也可能是其它的數據源)會以批的方式流向 DDS 系統,用戶自己極少會更新 DSS 的數據。
下圖反映了DSS系統的特征:
DSS系統在運行時,有如下的一些要求:
合理的響應時間。
結果是准確的。
可以在白天使用。
為了滿足上面的要求,應當從以下幾個方面考慮調節數據庫DSS應用系統。
1. 在使用應用邏輯和聲明約束來維護完整性方面,切記聲明完整性約束的代價要小。在DSS系統中,相關完整性約束和表的check 約束是主要使用的約束形式。
2. 盡量要使代碼被存儲過程對象共享。
3. 即使一條SQL語句在不同的運行環境下捆綁變量(bind variable)取了不同的值,Oracle認為他們是同樣的SQL語句。因此,要使分析SQL語句的工作減少到最抵,應當使用捆綁變量,而不是將這些不同的值直接放到SQL語句中(使用 literal)(如果這樣做了,Oracle 認為它們之間是不同的SQL,需要重新分析)。但是,這樣做會有如下的損失:優化器無法知道列的可選擇性。而完全寫出來的SQL 語句(使用 literal),可使基於成本的Oracle優化器使用直方圖統計(histogram)。
4. 無論如何,對DSS系統來說,分析 SQL 用的時間要比執行SQL語句用的時間要少的多。工作重點應當是優化SQL語句執行計劃的存取路徑上。這裡的微小調節可能會帶來幾分鐘,甚至是幾小時性能的提高。開發人員必須考慮: