gpt4 book ai didi

c# - .NET 4+ 中 get 存储过程架构的优势?
转载 作者:行者123 更新时间:2023-11-30 14:35:01 26 4
gpt4 key购买 nike

我正在将现有的 .NET 2.0 SQL Server 代码库迁移到 .NET 4.0 SQL Server 2008 环境。

设计模式是所有应用程序对数据库的调用都通过一个存储过程。因此,对于大多数选择语句,需要创建或更改一个 get[object name] 存储过程。

所以这个架构对我来说的缺点已经很明显了:不方便。

这种高度强制的存储过程设计有哪些优点? (现在在 .NET 4.0 中而不是使用 ORM)。

最佳答案

实际上 - 与流行的看法相反 - 性能不是存储过程的优势之一 - 不再是了。正确编写的带有参数的“内联”SQL 查询与任何存储过程一样快,由 SQL Server 进行一次“编译”(在首次使用之前)并保留在 SQL Server 的过程缓存中。

但是存储过程确实有优点 - 我想提两个主要的优点:

  1. 保护用户免受基础表的影响。这也意味着:它是您安全系统中的另一层。您的数据库用户不需要访问这些表 - 因此他们也不会通过 Excel 或 Access 或其他一些工具访问这些表而对这些表造成任何伤害。仅此一项就可以带来巨大的好处。

  2. 第二点是有一层存储过程可以给你的DBA一个优化的地方。作为开发人员,您只调用存储过程——而 DBA 可以调整它们,微调它们,使它们运行得更快。只要参数列表和返回结果集保持不变 - 作为前端开发人员的您甚至不会注意到(至少不会以消极的方式!)

关于c# - .NET 4+ 中 get<object Name> 存储过程架构的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981863/

26 4 0