使用視圖和存儲過程的優缺點
–以下內容整理自網絡
視圖的優點:
簡單性
視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作,哪些經常使用的查詢可以被定義爲視圖,從而使用戶不必爲以後的操作每次都指定全部的條件。
安全性
隱藏數據源,通過視圖用戶只能查詢和修改他們所能見到的數據,數據庫中的其它數據則看不見也取不到。
邏輯數據獨立性
視圖可以使應用程序和數據庫在一定程序上獨立。如果沒有視圖,應用一定是建立在表上。有了視圖之後,程序可以建立在視圖之上,從而程序與數據庫表被視圖分割開來。
方便性
在多表連接查詢時,可以使用視圖提高效率
視圖的缺點:
性能差
sql server必須把視圖查詢轉化成對基本表的查詢,如果這個視圖是由一個複雜的多表查詢所定義,那麼,即使是視圖的一個簡單查詢,sql server也要把它變成一個複雜的結合體,需要花費一定的時間。
修改限制
當用戶試圖修改試圖的某些信息時,sql server必須把它轉化爲對基本表的某些信息的修改,對於簡單的試圖來說,這是很方便的,但是,對於比較複雜的試圖,可能是不可修改的。
存儲過程的優點:
預編譯
當一個sql語句包含在存儲過程中時,服務器不必每次執行它時都要分析和編譯它,避免了sql語句在網絡中傳輸然後再解釋的低效率問題。
修改方便
直接修改存儲過程,方便代碼的管理。
安全
不會有sql語句注入問題。
可以建立複雜的查詢
可以用存儲過程建立非常複雜的查詢,以非常複雜的方式更新數據庫。
可以使用參數
在存儲過程中可以使用參數,可以傳送和返回參數。
存儲過程的缺點:
增加複雜性
當業務邏輯比較複雜時不建議使用存儲過程,這樣會增加複雜性。
可移植性低
在不同的數據庫平臺上很難移植