2013-09-28 52 views
3

我目前正在進行維護是主要關注的項目。所以,領導設計人員自然不想重複任何不必要的代碼。Views中的視圖 - 什麼是最佳做法

我們有一些查詢數據的複雜視圖。不,我的任務是製作另一個複雜的視圖,但我的指示是從其他視圖查詢。在注意到生產數據副本存在嚴重的速度問題後,我注意到我的視圖調用了一個視圖,該視圖調用另一個視圖,該視圖稱爲另一視圖! (即:視圖A引用視圖B它引用視圖C它引用視圖d - 在我的情況每個視圖是在表的查詢都在同一個數據庫內)

雖然我知道互換性的問候原則到觀點和表格(即:實際關係和虛擬關係之間沒有區別),但我可以期待性能問題嗎?我應該製作一個不參考其他視圖的視圖嗎?

+3

http://dba.stackexchange.com/questions/5487/is-nested-view-a-good-database-design –

回答

2

視圖在執行前展開。任何級別的嵌套視圖都不應該有性能損失。

如果出現性能損失,可能是因爲嵌套視圖比您需要做更多的工作。 SQL Server只能進行優化。特別是查詢提示或強制排序操作,如select top 100 percent ...可以使嵌套查詢變慢。

我的建議是使用最易讀,最易維護的替代方案。如果遇到性能問題,考慮優化幾個視圖足夠早了!

相關問題