gpt4 book ai didi

sql - 用更少的参数编写一个更有针对性的存储过程会更好吗?

转载 作者:行者123 更新时间:2023-12-04 23:36:50 26 4
gpt4 key购买 nike

假设我有一个从 SELECT 查询返回数据的存储过程。我想根据我通过的参数对这些结果进行稍微不同的削减。我想知道是设计多个带一个参数或不带参数来执行此操作的存储过程(例如 GetXByDate 或 GetXByUser),还是一个带有多个参数的存储过程(例如 GetX)更好?

第一个选项的优点是它更简单,可能更快,但缺点是查询的本质在存储过程中是重复的,需要在多个地方维护。

第二种方式的优点是查询只出现一次,缺点是查询比较复杂,更难排查。

您在解决方案中使用什么,为什么?

最佳答案

存储过程越复杂,SQL server 编译就越复杂
正确并快速有效地执行。

即使在大型存储过程中,您也必须拥有多个查询副本或在其中添加大量 CASE 和 IF,这会降低性能。因此,将所有内容混为一谈并不会真正获得太多好处。

根据我的个人经验,我还认为具有大量分支的大型 SQL sp 代码更难维护几个较小且直接的 sproc。

您可以考虑使用 View 和 UDF 来减少查询代码的复制粘贴。

说如果您不关心性能(内网应用程序,查询不是那么繁重,不要经常运行),您可能会发现拥有一个通用 sproc 非常方便。

关于sql - 用更少的参数编写一个更有针对性的存储过程会更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/225398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com