我听说使用游标不好,因为它们对于 DBMS 来说“不自然”并且性能很差。
但想象一下以下情况:我有一个存储过程,我需要为来自法国的每个客户调用该存储过程(例如)。我有几个选项,例如使用游标、在一个查询中写入所有内容并从客户端应用程序为每个客户调用存储过程。
如果我在一个查询中写入所有内容 - 它很可能会重复现有存储过程中的代码/逻辑/整个查询。对我来说,这看起来像是一种“臭方法”(如果你读过《重构》一书)。逻辑不再封装在一处。
你觉得怎么样?
PS。欢迎链接到任何描述光标为何不好或不错的文档。最佳答案
如果您致力于在数据库上采用存储过程形式的业务逻辑,那么游标也不错。
假设您有一个非常标准的客户端-服务器-数据库架构,那么将逻辑从数据库移到应用程序服务器中可能是一个更好的主意。这有几个好处:
- 更好的可扩展性。添加应用程序服务器比添加数据库服务器更容易/更便宜。
- 集中业务逻辑。业务逻辑遍布各处的应用程序更难维护。
关于database - 游标与重复代码/逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1089700/