gpt4 book ai didi

database - 直接在数据库系统中实现功能/代码

转载 作者:搜寻专家 更新时间:2023-10-30 19:44:54 26 4
gpt4 key购买 nike

今天的 RDBMS 包提供了超出标准数据存储和检索的大量功能。例如,SQL Server 可以发送电子邮件、公开 Web 服务方法以及执行 CLR 代码等功能。但是,出于以下原因,我一直试图将我的数据库服务器的处理量限制在尽可能多的数据存储和检索上:

  • 数据库服务器比网络服务器更难扩展
  • 在我参与的很多项目中,DB 服务器比 Web 服务器繁忙得多,因此空闲容量较少
  • 它可能会使您的数据库服务器受到安全攻击(例如网络服务)

我的问题是,与架构中的其他服务器相比,您如何决定应在数据库服务器上直接实现多少功能或代码?对于开始新项目的人,您有什么建议?

最佳答案

我知道 Microsoft SQL Server 和 Oracle 确实插入对所有内容使用存储过程,这有助于封装关系架构并为软件开发人员创建更程序化的界面,而软件开发人员通常不那么容易编写 SQL 查询。

但是,一半的应用程序逻辑是用 PL/SQL(或 T-SQL 或其他)编写的,另一半是用您的应用程序语言(Java、PHP 或 C# 等)编写的。DBA 通常负责编写程序,开发人员负责其他一切。没有人能看到和访问完整的应用程序逻辑。这往往会减慢项目的开发、测试和 future 修订。

此外,软件开发工具往往不适合存储过程。调试、源代码控制和测试的工具和最佳实践似乎都落后于应用程序语言的最新技术水平大约 10-15 年。

因此,如果可能的话,我倾向于远离存储过程和触发器。除非在某些情况下,适当放置的存储过程可以使复杂的 SQL 操作完全在服务器中发生,而不是来回移动数据。这可以非常有效地消除性能瓶颈。

在另一个方向上也有可能走得太远。喜欢应用程序管理数据而不是元数据的人,并采用实体属性值或多态关联等设计,会让自己陷入困境。让数据库管理它。使用参照完整性约束(外键)。使用事务。

关于database - 直接在数据库系统中实现功能/代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/185363/

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