儲存過程與SQL語句的恩怨情仇

2021-04-17 02:52:18 字數 844 閱讀 2438

程式設計師說:儲存過程還是sql

語句,這是乙個問題。

江湖現在有三個流派,乙個是sql

語句流的,崇尚使用sql

語句,一派是儲存過程派的,崇尚用儲存過程說話,還有一派是中庸派的,講求和諧,所以也就前兩派吵得厲害,中庸派的看熱鬧。現在sql派的有nhibernate為首的眾多orm助陣,最近風生水起比較得意,儲存過程派也有自己的殺手秘籍,兩派互不相讓,爭鬥由來已久。

儲存過程派的追求速度,所謂天下無功無堅不破,唯快不破,這也是儲存過程派的人行走江湖的最大本錢。之前儲存過程派的攻擊sql

語句派的還有乙個秘籍就是,不過現在都沒人用連線string的動態sql的了,這招也就失效了。

sql語句派是資格很老的流派,但是新手居多,老資格很多投奔敵營儲存過程派了。幫的人很多都是sql

語句派的,而儲存過程派的以微軟幫的居多。

不過儲存過程派也有軟肋,可移植性就是其一,還有一點就是可擴充套件性,因為一般大型的web應用程式都是多web伺服器,然後用雙伺服器做雙機熱備,其中一台開機,但是是閒置的,這裡只是解決單點故障的問題,但是形成了多web應用伺服器,單資料庫伺服器的情況,如果所有的運算都用儲存過程實現,那麼會造成資料庫伺服器負擔過重,而web伺服器負荷不足的情況,而擴充套件資料庫伺服器的話就會非常的麻煩,而且投資較大,程式也需要改,而投資web伺服器就相對便宜而且擴容更加簡單。

人在江湖漂哪有不挨刀,所以中庸一點比較保險,我比較傾向於用把較多的負擔放到程式裡來,而降低資料庫得負擔,因為只要資料庫扛得住,再增加web伺服器那是比較容易的,但是一旦資料庫伺服器扛不住了我們就只有哭了。一般報表阿,還有一些結果集比較複雜的我就用儲存過程來包裝,一般的查詢和cuid操作我都是找個orm來搞定。

其實主要是在說儲存過程的軟肋。

與 equals 的恩怨情仇

基本資料型別不用通過new關鍵字來建立變數,直接儲存 值 並置於堆疊中,更加高效。如 boolean char byte short int long float double void。引用資料型別通過new關鍵字來完成建立。如 string,integer 比較的是物件的引用。equals 適用...

jq與js的恩怨情仇

var is selected new array var obj is selected obj.each function e,v var obj is selected obj.each function e,v function setval inum var aform document....

get與post的恩怨情仇

get和post沒有本質上的區別,都是屬於http請求協議,但硬要說它們之間的區別,暫時概括了以下兩點 1.get請求的headers中沒有content type這個字段,post 的 content type 有兩種 這種就是一般的文字表單用post傳遞資料,只要將得到的data用queryst...