2012-08-08 54 views
0

我有一個註冊頁面,並在首先我要插入一些強制性的領域進入DB,之後,在第二頁我想根據userid更新一些更多的細節。關於插入和更新存儲過程

所以我想用存儲過程做到這一點這是最好的方式做到這一點,單獨創建一個插入和更新存儲過程或創建具有插入和更新單個程序?

哪個性能最好?

回答

0

您可以創建插件和程序另一個用於更新

+0

爲什麼你的答案格式化爲代碼? – 2012-08-08 13:14:03

1

有來自同一個查詢有沒有這些性能增益,作爲兩個獨立的存儲過程仍然是由數據庫服務器預編譯。這更像是一個維護問題,而不是性能 - 我建議爲插入和更新分開存儲過程,這比存儲在單個腳本中的可讀性和明顯性要高得多。

0

您可以創建兩個單獨的存儲過程,一個用於INSERT,另一個用於UPDATE。這對於任何人都能理解就足夠簡單了。

但是,如果您使用的是MSSQL 2008或更高版本,那麼你可以做一個單一的存儲過程,並利用MERGE

Technet SQL MERGE

0

寫一個單獨的插入和更新過程作爲該過程不會更有效必須考慮是否插入或更新,儘管效率節約將會很小,所以我不會基於此做出決定,而應該更多地基於可讀性和可理解性。

0

任何性能差異都是微不足道的。在那裏肯定會有幾微秒的差異,但它確實只是那麼小,而其他一些小小的決定將會消除這種差異。

那麼唯一真正的區別是代碼是多麼清晰。從您的描述看來,「創建新用戶」和「更新用戶」在您的其他代碼中被視爲單獨的問題,因此應該分開。

如果出於某種原因您的代碼會發現更容易處理「適當創建或更新」操作,那麼這將是另一回事,但沒有任何跡象表明它是這種情況。