天天看點

為什麼不使用基于存儲過程程式設計的架構

1.代碼可維護性

SQL是結構化查詢語言,其主要目的是用來進行查詢,業務邏輯和程式設計不是它的主要任務,如果硬要用SQL完成複雜的業務邏輯程式設計,其結果就是整個存儲過程複雜無比(相對于例如c#等程式設計語言),誰見誰頭疼。

2.開發效率

很明顯,沒有比較好的SQL的程式設計架構。

3.性能難以擴充

當把業務邏輯整合到存儲過程中,相對于隻吞吐資料的資料庫伺服器負載增加不小,為何不把業務邏輯的性能消耗放到另外一台機器上呢。當這台業務邏輯伺服器負載不能承受時,可以很輕松的繼續添加邏輯伺服器來分擔負載(相對于添加資料庫叢集,而且資料實時同步又是一個很大的性能消耗)。這樣可以做到盡量少的資料伺服器去滿足盡量多的業務負載。

當然存儲過程也有其特有的優點:性能

因為連接配接和斷開資料庫伺服器對于執行簡單的增删改操作來說是一個很大的性能消耗,過于頻繁的連接配接和斷開會導緻性能消耗嚴重,當需要批量操作資料時,存儲過程的優勢展現出來了。是以我的了解就是,隻有當進行批量資料處理的時候才使用存儲過程。否則存儲過程可以退休了。