作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个从 SELECT 查询返回数据的存储过程。我想根据我通过的参数对这些结果进行稍微不同的削减。我想知道是设计多个带一个参数或不带参数来执行此操作的存储过程(例如 GetXByDate 或 GetXByUser),还是一个带有多个参数的存储过程(例如 GetX)更好?
第一个选项的优点是它更简单,可能更快,但缺点是查询的本质在存储过程中是重复的,需要在多个地方维护。
第二种方式的优点是查询只出现一次,缺点是查询比较复杂,更难排查。
您在解决方案中使用什么,为什么?
最佳答案
存储过程越复杂,SQL server 编译就越复杂
正确并快速有效地执行。
即使在大型存储过程中,您也必须拥有多个查询副本或在其中添加大量 CASE 和 IF,这会降低性能。因此,将所有内容混为一谈并不会真正获得太多好处。
根据我的个人经验,我还认为具有大量分支的大型 SQL sp 代码更难维护几个较小且直接的 sproc。
您可以考虑使用 View 和 UDF 来减少查询代码的复制粘贴。
说如果您不关心性能(内网应用程序,查询不是那么繁重,不要经常运行),您可能会发现拥有一个通用 sproc 非常方便。
关于sql - 用更少的参数编写一个更有针对性的存储过程会更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/225398/
CppCheck 建议我用 STL 算法替换我的一段代码,我不反对,但我不知道如何替换它。我很确定这是一个糟糕的建议(CppCheck 中有关于实验性功能的警告)。 代码如下: /* Cutt
我是一名优秀的程序员,十分优秀!