在以下两种方法之间使用存储过程的首选方式是什么,为什么:
一种通用的SP,例如“ GetOrders”,它返回表Order的所有列。应用程序的几个不同部分将使用相同的SP。
要么
一些更特定的SP,例如“ GetOrdersForUse1”和“ GetOrdersForUse2”,它们返回所有列的子集。每个SP仅由应用程序的一部分使用。
在一般情况下,应用程序将仅使用SP返回的列的子集。我出于性能原因考虑使用特定的方法,但是真的值得进行额外的工作吗?我正在使用ASP.NET和SQL 2005开发一个网站。
最佳答案
像所有伟大的事情一样,这取决于。您的变体中的逻辑有何不同。例如,如果唯一的区别是返回列,那么您节省的只是网络上的一些带宽和一些内存,而这两者都便宜得多,那么创建变体所花费的时间将对其进行测试和维护。
现在,如果有非常不同的选择逻辑(连接不同的表等),那么最好使用专门的SP。
最后一件事不是过早优化。首先将其构建简单并可以正常工作,然后发现需要额外的毫秒时间,然后可以进行调整。
关于stored-procedures - 存储过程-一般或特定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/339412/