我已经开始从事金融服务行业的一个项目,该项目(主要)基于 SQL Server (2000)、ColdFusion (8) 和一些 Access/.NET 应用程序。这个项目从一些简单的 Access 表单/VBA 开始,然后慢慢转换为 Web 界面。
我可以说数据库设计和应用程序编码是由在工作中学习的人完成的,并且从一开始就没有机会学习好的设计原则。许多业务规则设置在无数级联函数和存储过程以及 Web 服务器模板中。在使用未注释常量的复杂 500 行 SQL UDF 中有大量特殊情况处理。跟踪查询中可能涉及的 10-20 个 UDF 之间的所有交互是非常困难的。一些查询似乎需要很长时间才能运行(最多 15 分钟)。
虽然这些表的索引相当好,但缺乏 FK 关系并且几乎没有参照完整性。数据库很少更新,每天都有少量的批量(多个表中的 1,000 条记录)。它主要用作数据存储库 - 我想是数据仓库。我们很少遇到死锁或延迟。
所以,我的问题是:如果我想重新实现整个项目,包括数据库和前端,看看非关系实现是否有意义?主数据库只有大约 1GB (.mdf),因此可以轻松放入内存中。我想从 SQL 查询结构转移到一些可以有效编译和执行的声明性模型。如有必要,我可以将 SQL DB 用作数据存储。