gpt4 book ai didi

.net - 交易和报告数据库 - 如何?

转载 作者:太空狗 更新时间:2023-10-30 01:46:11 24 4
gpt4 key购买 nike

在构建具有高度规范化数据库的事务系统时,运行报告样式查询,甚至是在 UI 上显示数据的查询都可能涉及多个连接,这在数据密集型场景中可能而且通常确实会影响性能。加入很昂贵。

通常,所支持的指导原则是您永远不应在事务性数据库模型中运行这些查询,而应该使用针对特定 UI View 或报告量身定制的非规范化扁平化模型,从而消除对许多连接的需要。在这种情况下,数据重复不是问题。

这个概念非常有道理,但是当专家做出这些陈述时,我很少看到确切的实现方法。例如,(坦率地说,我很欣赏使用任何平台的示例)在一个运行在 sql server 后端上的中型系统中,您有一个规范化的事务模型。您还有一些报告和需要查询的网站。因此,您创建了一个“报告”数据库,使规范化数据变平。你如何保持同步?事务日志传送?如果是这样,您如何转换数据以适应报告模型?

最佳答案

在我们的店里,我们设置了一个连续的transactional replication从 OLTP 系统到另一个用于报告的数据库服务器。您不希望为此目的使用日志传送,因为它每次恢复日志时都需要对数据库进行独占锁定,这会阻止您的用户运行报告。

对于今天 SQL Server 中的优化器,我认为规范化数据库上的连接对于报告来说“太昂贵”的想法有点过时了。我们的设计完全是第三范式,主表中有几百万行,我们运行任何报告都没有问题。话虽如此,如果紧要关头,您可以考虑创建一些 indexed views在您的报告服务器上提供帮助。

关于.net - 交易和报告数据库 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872996/

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