动态sql vs存储过程 - 优点和缺点?

sky*_*gle 6 mysql sql stored-procedures

我已经阅读了许多强烈的观点(赞成和反对)SP或DS.

我正在用C++编写一个查询引擎(mySQL后端现在,虽然我可能决定使用C++ ORM).我无法决定是编写SP,还是动态创建SQL并将查询发送到数据库引擎.#

关于如何决定的任何提示?

dla*_*tte 1

您可以更好地控制数据库外部的机制。在数据库之外处理这个问题的最大好处就是简单的维护(在我看来)。与在数据库外部生成的代码相比,对 SP 进行版本控制会有点困难。还有一件事需要跟踪。

当我们讨论这个主题时,它类似于处理数据/模式迁移。版本/处理模式迁移非常复杂,如果您还没有这方面的机制,那么您将需要管理另一件事。归根结底是为了更容易在数据库之外管理/版本化这些东西。

考虑 SP 中存在错误的情况。现在需要更改,但随后您跳到另一个开发人员数据库/沙箱。沙盒和SP是什么版本?现在您必须跟踪多个版本。