程序員說:存儲(chǔ)過程還是SQL語句,這是一個(gè)問題。
江湖現(xiàn)在有三個(gè)流派,一個(gè)是SQL語句流的,崇尚使用SQL語句,一派是存儲(chǔ)過程派的,崇尚用存儲(chǔ)過程說話,還有一派是中庸派的,講求和諧,所以也就前兩派吵得厲害,中庸派的看熱鬧。現(xiàn)在SQL派的有Nhibernate為首的眾多ORM助陣,最近風(fēng)生水起比較得意,存儲(chǔ)過程派也有自己的殺手秘籍,兩派互不相讓,爭(zhēng)斗由來已久。
存儲(chǔ)過程派的追求速度,所謂天下無功無堅(jiān)不破,唯快不破,這也是存儲(chǔ)過程派的人行走江湖的最大本錢。之前存儲(chǔ)過程派的攻擊SQL語句派的還有一個(gè)秘籍就是安全,不過現(xiàn)在都沒人用連接String的動(dòng)態(tài)SQL的了,這招也就失效了。
SQL語句派是資格很老的流派,但是新手居多,老資格很多投奔敵營(yíng)存儲(chǔ)過程派了。Java幫的人很多都是SQL語句派的,而存儲(chǔ)過程派的以微軟幫的居多。
不過存儲(chǔ)過程派也有軟肋,可移植性就是其一,還有一點(diǎn)就是可擴(kuò)展性,因?yàn)橐话愦笮偷腤eb應(yīng)用程序都是多Web服務(wù)器,然后用雙數(shù)據(jù)庫服務(wù)器做雙機(jī)熱備,其中一臺(tái)開機(jī),但是是閑置的,這里只是解決單點(diǎn)故障的問題,但是形成了多Web應(yīng)用服務(wù)器,單數(shù)據(jù)庫服務(wù)器的情況,如果所有的運(yùn)算都用存儲(chǔ)過程實(shí)現(xiàn),那么會(huì)造成數(shù)據(jù)庫服務(wù)器負(fù)擔(dān)過重,而Web服務(wù)器負(fù)荷不足的情況,而擴(kuò)展數(shù)據(jù)庫服務(wù)器的話就會(huì)非常的麻煩,而且投資較大,程序也需要改,而投資Web服務(wù)器就相對(duì)便宜而且擴(kuò)容更加簡(jiǎn)單。
人在江湖漂哪有不挨刀,所以中庸一點(diǎn)比較保險(xiǎn),我比較傾向于用把較多的負(fù)擔(dān)放到程序里來,而降低數(shù)據(jù)庫得負(fù)擔(dān),因?yàn)橹灰獢?shù)據(jù)庫扛得住,再增加Web服務(wù)器那是比較容易的,但是一旦數(shù)據(jù)庫服務(wù)器扛不住了我們就只有哭了。一般報(bào)表阿,還有一些結(jié)果集比較復(fù)雜的我就用存儲(chǔ)過程來包裝,一般的查詢和CUID操作我都是找個(gè)ORM來搞定。
引自:http://www.cnblogs.com/Alexander-Lee/archive/2007/04/01/696070.html