0

我有一个注册页面,起初我想在数据库中插入一些必填字段,然后在第二页中我想根据userid.

所以我想用存储过程来做到这一点,这是最好的方法,分别创建一个插入和更新存储过程,还是创建一个具有插入和更新的单一过程?

在性能方面哪个最好?

4

5 回答 5

1

在同一个查询中包含这些并没有性能提升,因为两个单独的存储过程仍然由数据库服务器预编译。这更像是一个维护问题而不是性能问题——我建议为插入和更新使用单独的存储过程,这比在单个脚本中将它们混合在一起更具可读性和明显性。

于 2012-08-08T13:13:58.233 回答
0

您可以创建一个用于插入的过程和另一个用于更新的过程

于 2012-08-08T13:10:34.147 回答
0

您可以创建两个单独的存储过程,一个 forINSERT和一个 for UPDATE。这很简单,任何人都可以理解。

但是,如果您使用的是 MSSQL 2008 或更新版本,那么您可以创建一个存储过程并使用MERGE

技术网 SQL 合并

于 2012-08-08T13:14:54.203 回答
0

编写单独的插入和更新过程会更有效,因为该过程不必考虑是插入还是更新,尽管效率节省将是最小的,所以我不会基于此做出决定,它应该更基于围绕可读性和可理解性。

于 2012-08-08T13:16:55.687 回答
0

任何性能差异都可以忽略不计。在某个地方肯定会有几微秒的差异,但它真的会那么小,而且一堆其他的小决定会消除差异。

那么唯一真正的区别是代码的清晰程度。根据您的描述,在我看来,“创建新用户”和“更新用户”被您的其余代码视为单独的关注点,因此应该分开。

如果出于某种原因,您的代码会发现更容易处理“根据需要创建或更新”操作,那将是另一回事,但这里没有任何迹象表明这种情况。

于 2012-08-08T13:17:21.270 回答