gpt4 book ai didi

sql - 在存储过程上使用提取方法

转载 作者:太空狗 更新时间:2023-10-30 01:52:36 25 4
gpt4 key购买 nike

提取方法是编写编程语言时常见的重构模式。

当我尝试对我的存储过程进行一些重构时,我想知道在编写存储过程 (SP)/用户定义函数 (UDF) 时使用提取方法是否也是一个好习惯,因为我们可以调用其他 SP/SP/UDF 上的 UDF?

它会影响性能吗?

提前致谢。

最佳答案

只是我的意见(现在使用数据库工作了几年):

存储过程应该只用于数据库任务。例如迁移数据(目前我正在处理一个转换数据库结构的过程),或者一些动态查询(其中一个 sql 语句是动态构建的),或者一个构建表的过程(例如保存特定日期范围内的日期的表)。

不为别的!对于比上述示例更复杂的所有内容,请考虑在应用层进行编码。

此外,您可能听说将尽可能多的业务逻辑放入数据库中是明智之举。对于数据库设计来说确实如此,但这并不意味着您应该对其中的几乎所有内容进行编码。数据库并不擅长(例如谈论数据转换或类似的东西)。像 PHP 这样更快的编程语言!

因此,对于我使用存储过程的所有内容,我从未觉得有必要将任何东西放入额外的过程中。除了例如数据库的重组(在我的例子中它是一个 ETL 过程(它将数据非规范化为星型模式以获得更好的性能)),我在那里为每个表编写了一个过程并且这些过程是从管理的过程中调用的整个过程。但同样,它与编程语言完全不同。

此外,当我将此示例用于提取方法模式时 http://www.refactoring.com/catalog/extractMethod.html
在你的数据库中有这样的东西将成为调试的噩梦,你将花费太多时间编码。同样,应该使用存储过程的情况并不是应用提取方法模式有意义的情况。

关于sql - 在存储过程上使用提取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19972611/

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