我有一个注册页面,并且首先我想在DB 中插入一些必填字段,之后在第二页中我希望根据{{更新更多详细信息1}}
所以我想用存储过程执行此操作这是最好的方法,单独创建插入和更新存储过程或创建具有插入和更新的单个过程吗
在性能方面哪个最好?
答案 0 :(得分:1)
在同一查询中使用它们没有性能提升,因为数据库服务器仍在预编译两个单独的存储过程。这更像是一个维护问题而不是性能 - 我建议使用单独的存储过程进行插入和更新,这比在单个脚本中将它们混合在一起更加可读和明显。
答案 1 :(得分:0)
您可以为插入创建一个过程,为更新创建另一个过程
答案 2 :(得分:0)
您可以创建两个单独的存储过程,一个用于INSERT
,另一个用于UPDATE
。这对任何人来说都很简单。
但是,如果您使用的是MSSQL 2008或更新版本,那么您可以创建一个存储过程并使用MERGE
:
答案 3 :(得分:0)
编写单独的插入和更新过程会更有效,因为程序不必考虑是否插入或更新虽然效率节省将是最小的,所以我不会基于此做出决定它应该更多地基于可读性和可理解性。
答案 4 :(得分:0)
任何性能差异都可以忽略不计。在那里某处必然存在几微秒的差异,但它实际上只是那么小,而其他一些小决定将消除差异。
唯一真正的区别在于代码的清晰程度。在您的描述中,我认为“创建新用户”和“更新用户”被其他代码视为单独的问题,因此应该是分开的。
如果有一些原因导致您的代码更容易处理“适当的创建或更新”操作,那么这将是另一回事,但没有任何迹象表明它就是这种情况。