因此,我有一個應用程序需要非常快速地訪問大量的數據,我們正處於對數據庫進行大量重新設計的階段,這爲重新編寫數據訪問提供了良好的操作性層如果nessersary!我應該如何使用對性能敏感的數據訪問?
當前在我們的數據訪問層中,我們使用手動創建的實體以及普通SQL來填充它們。這很快,但是這項技術真的變老了,我擔心我們錯過了一個更新的框架或數據訪問方法,在整潔和可維護性方面可能會更好。
我們已經看到了實體框架,但經過一番研究,似乎它所提供的ORM的好處並不足以證明性能較低,而且我們的某些查詢變得越來越複雜,我確信性能與英孚將成爲更多的問題。
所以這是堅持我們目前的數據訪問方法,還是有一些比手動創建和維護實體有點整潔的情況?
我想這是竊聽我是剛剛打開我們的數據層的解決方案,看大量的實體,所有這些都需要保持正是在數據庫中,這有時是一個大量的工作線的事情,但那麼也許這就是我們爲演出付出的代價?
任何想法,意見和建議,非常感謝! :)
謝謝,
安迪。
** **更新
忘了提,我們真的需要能夠使用Azure的(客戶的需求),目前阻止我們使用存儲過程來處理。 ** Update 2 **實際上,我們有一個用於DAL的接口層,這意味着我們可以創建一個Azure實現,它只是覆蓋來自Local實現的不適合Azure的數據訪問方法,所以我想我們可以使用存儲過程針對性能敏感的本地數據庫,並使用EF作爲雲。
如此有效地有兩個DAL的?一個用於使用普通SQL的性能數據,另一個用於使用EF的其他bog標準內容?性能DAL可以重複使用由EF創建的實體嗎?因此,兩個DAL都會將相同的對象返回給BLL? – Andy 2011-01-19 11:50:34
是的,我提出了並排系統,儘管在我的辯護中,他們使用專爲他們的特定目的而設計的工具來完成不同的事情。我會主張不使用EF(和實體)進行報告,因爲EF會根據您的報告編寫來綁定您的手。有時低層次的東西感覺更簡單,因爲它更直接。 – David 2011-01-19 16:05:24
值得一提的是,通過SQL/sprocs進行報告不會返回實體(除非您爲實體編程執行了大量繁瑣的數據集)。但我認爲這不重要。 (雖然它可能對你很重要。) – David 2011-01-19 16:10:17