1. 程式人生 > >為什麼要用儲存過程,什麼時候要用儲存過程,儲存過程的優點

為什麼要用儲存過程,什麼時候要用儲存過程,儲存過程的優點

為什麼要用儲存過程 

幾個去 IBM 面試的兄弟回來抱怨:去了好幾個不同的 IBM 專案組,幾乎每個面試官問到資料庫的時候都要問用沒用過儲存過程,煩人不?大家去面的程式設計師,又不是 DBA,以前的專案都沒有用到儲存,不照樣執行的好好的?

儲存過程真的那麼重要嗎,它到底有什麼好處呢?

筆者認為,儲存過程說白了就是一堆 SQL 的合併。中間加了點邏輯控制。

但是儲存過程處理比較複雜的業務時比較實用。
比如說,一個複雜的資料操作。如果你在前臺處理的話。可能會涉及到多次資料庫連線。但如果你用儲存過程的話。就只有一次。從響應時間上來說有優勢。
也就是說儲存過程可以給我們帶來執行效率提高的好處。
另外,程式容易出現 BUG 不穩定,而儲存過程,只要資料庫不出現問題,基本上是不會出現什麼問題的。也就是說從安全上講,使用了儲存過程的系統更加穩定。

資料量小的,或者和錢沒關係的專案不用儲存過程也可以正常運作。mysql 的儲存過程還有待實際測試。如果是正式專案,建議你用 sql server 或 oracle 的儲存過程。資料與資料之間打交道的話,過程會比程式來的快的多。面試官問有沒有用儲存,實際上就是想知道前來面試的程式設計師到底做過資料量大的專案沒。如果是培訓出來的,或者小專案小公司出來的,對儲存肯定接觸的少了。

所以,要想進大公司,沒有豐富儲存過程經驗,是不行的。

那麼什麼時候才可以用儲存?對於資料量不是很大以及業務處理不是很複雜的小專案就無需要了麼?
錯。儲存過程不僅僅適用於大型專案,對於中小型專案,使用儲存過程也是非常有必要的。其威力和優勢主要體現在:
  1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般 SQL 語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。
  2.當對資料庫進行復雜操作時(如對多個表進行 Update,Insert,Query,Delete 時),可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。這些操作,如果用程式來完成,就變成了一條條的 SQL 語句,可能要多次連線資料庫。而換成儲存,只需要連線一次資料庫就可以了。
  3.儲存過程可以重複使用,可減少資料庫開發人員的工作量。
  4.安全性高,可設定只有某此使用者才具有對指定儲存過程的使用權。