我們正在使用SQL服務器數據庫在.net 3.5中構建一個新的應用程序。數據庫相當龐大,大約有60個表格,其中有數據加載。 .net應用程序具有將數據從數據輸入和第三方系統導入數據庫的功能。存儲過程中的複雜處理與.NET應用程序
在數據庫中所有數據都可用後,系統必須進行大量計算。計算邏輯非常複雜。所有計算所需的數據都在數據庫中,輸出也需要存儲在數據庫中。數據收集將每週進行一次,並且需要每週進行一次計算以生成所需的報告。
由於上述情況,我正在考慮使用存儲過程進行所有這些計算。問題是我們還需要數據獨立性,而存儲過程將無法爲我們提供這一點。但是,如果我一直在查詢數據庫中通過.net完成所有這些工作,我認爲它不會很快完成工作。
例如,我需要查詢一個表,它將返回2000行,然後爲每行我需要查詢另一個表,這將返回我300結果比我需要查詢多個表的每行(約10 )來獲得所需的數據,進行計算並將輸出存儲在另一個表中。
現在我的問題是我應該繼續使用存儲過程解決方案,並忘記數據庫的獨立性,因爲性能很重要。如果我們使用存儲過程解決方案,我也認爲開發時間會少得多。如果有客戶想要說這個解決方案說oracle數據庫(因爲他們不想維護另一個數據庫),那麼我們將存儲過程移植到oracle數據庫,併爲以後的任何更改/增強保留兩個版本。同樣,其他客戶可能會要求其他數據庫。
上面提到的2000行是產品skus。我提到的300行具有我們想要計算的不同屬性,例如,處理成本,運輸成本等。我提到的10個表格包含貨幣轉換,單位轉換,網絡,面積,公司,銷售價格,每天銷售數量等信息。結果表格將所有信息存儲爲星形模式分析和報告的目的。我們的目標是獲得有關產品的任何詳細信息,以便了解產品銷售的哪些屬性會使我們花錢,以及我們可以在哪些方面進行改進。
我並不是在尋找目前的執行方式,我給出的信息只是爲了給出我想要實現的任務的想法。當我們開始實施時,我會記住你的建議。目前我想知道是否使用存儲過程或在.net應用程序中提取信息。 – 2009-02-12 03:58:42