2012-10-25 67 views
0

我必須從在以下方式.NET取從DB2數據庫數據:DB2:用於查詢所需優化

  1. 加入5和表2內加入3左外連接
  2. 數據必須寫在一個文本文件。所以必須使用LPAD/RPAD,substr等格式化函數。
  3. 檢索到的數據將是10多萬行

我打算讓應用擺脫加入的,我得到所需的列只在視圖中創建一個視圖。 我想知道如果數據的格式化也應該移動到視圖的定義?因此,在應用程序我只會

SELECT * FROM視圖下進行

請指點

感謝

回答

0

實在是沒有從數據庫引擎的角度差是否在應用程序提交包含連接,文本函數等的查詢,或者如果所有這些都包含在視圖中並且應用程序執行簡單的select * from view。 DB2以完全相同的方式編譯查詢。

使用視圖的唯一「優勢」是應用程序開發人員的便利。將SQL語句放入視圖的缺點是,如果需求發生變化,您必須修改視圖。

至於在視圖中包含文本格式:如果此視圖僅存在以支持這一個單一的應用程序(並且您只是爲了方便使用它),那麼將格式包含在視圖定義。但是,如果其他應用程序可能對視圖有一些需要(但不是文本格式),那麼將查詢中的格式保留在視圖中是更好的選擇。作爲DBA,我建議最好的位置用於文本格式是在您的應用程序代碼中。使用printf()(或等效)編寫格式化的字符串是應用程序通常非常擅長的。

+0

感謝您的洞察力。您能否建議我如何在這種情況下優化數據的提取?我無法對現有數據庫表進行更改。在這方面,.NET的哪些功能可以提供幫助? – nishantv