gpt4 book ai didi

sql-server - 报表数据库的最佳解决方案

转载 作者:太空狗 更新时间:2023-10-30 01:55:15 25 4
gpt4 key购买 nike

情况如下:
有一个事务密集型数据库-用于常规事务和报告。

我想知道是否可以隔离这两个操作和2个独立的数据库,以便报表可以从一个数据库运行而所有事务都可以在另一个数据库中进行。这将提高OLTP SQL数据库的性能。

我已经介绍了一些选项,例如镜像,日志传送,复制,快照,群集-但想讨论实现所需结果的最佳策略。

请提出实施此策略的最佳解决方案,或者您可能有其他任何想法/建议。

最佳答案

我认为这是前端和后端数据库分离的经典教科书案例。
对于与我一起工作过的项目和人员,强烈同意将两者分开。
在一种情况下,数据库分为三层:

  • 前端事务中间摘要
  • 存储库以供前端事务处理
  • 后端信息存储库

  • 前端事务处理速度非常关键,即使将这一层划分为多个数据库,每个制造区域一个数据库。交易由需要非常快速响应的设备执行。
    使用前端数据库中的数据,以及面向客户和面向管理的数据库,以每小时一次的频率为后端报告存储库构建记录,因为管理层需要较短的信息等待时间来进行操作和工程决策。如果我们可以每隔15分钟执行一次信息编译,那么我们就可以做到。取决于项目,该后端存储库可以是Oracle或Sybase IQ。
    但是,设备执行的前端事务需要引用一些元信息。设备所需的响应时间不会冒被后端存储库上频繁运行大型即席查询的人打断的风险。
    因此,创建了一个中间层桥接数据库,该数据库由来自后端存储库的信息的夜间摘要组成。
    使用通用键设计的架构
    模式设计对于优化所有数据库的响应和性能非常重要。您必须确保数据库记录是通用键索引和离散时间索引的。
    对于充满机器人和设备的制造工厂,分为制造区域,每个区域都有一个前端交易数据库。每个区域数据库都需要有一个公用密钥分配器。什么时候
    对于执行一批操作所需的设备,beginOp事件向调度程序请求一个离散键。一个操作周期可能需要几秒钟,几天或几周的时间。每当一件设备需要在其操作状态下执行事务时,它都会包含该通用密钥。一个操作可以具有子操作和子子操作,等等-但是每个这样的操作都需要从其区域调度程序中获取公用密钥。
    通用密钥调度程序只是具有自动增量密钥的数据库中的beginOp表。任何共享相同开始操作的设备,都可以通过精心的过程排序策略从表中推断/获取该通用密钥。
    对于可以确保整个楼层中没有两个操作可以在相同的100毫秒内开始的区域,则不需要调度程序,因为我们可以简单地使用beginOp事件的日期时间,其中数据库的datetime函数服务器是自然/自发密钥调度程序。
    之所以讨论通用密钥,是因为所需的事务响应如此之快,您不希望设备之间不必进行不必要的通信,而只是告诉对方它们正在记录同一操作的事件。机器人和设备只需使用它们持有的通用密钥执行交易。
    每小时进行一次信息汇编以将其插入后端存储库,可以方便地使用通用性+区域的组合键来构建事件的层次结构。
    前端管道数据库
    好,这真的很极端。在某些领域,交易如此频繁,以至于我们拥有一个FIFO数据库。我们引入了第四层数据库。为了获得最佳的事务响应,我们必须将数据库大小保持在1GB以下。存在事务管道过程,以将旧事务清空到第四层数据库中。我发现创建新数据库池更容易(且响应更好),因此每次其大小达到1GB时,都会将其移出并立即从池中替换为新数据库-从而使计算机按小时进行编译加入数据库。这样一来,我们就可以依靠现有的元数据数据库来容纳具有一些元数据表的通用密钥分派(dispatch)器表。
    回想起来,人们可能会认为通用密钥分派(dispatch)器表和元数据表可能位于中间层桥接数据库中,但是由于数据库管理流程是自动化的且经过cookie切割的,因此创建新流程比修改流程更清洁。管理中间层桥接数据库的过程。这些管理例程已在全局范围内使用,因此您不能随意更改它们,而不会破坏公司的财务业绩或侵犯维护它们的各个数据层架构师。
    经理们需要大量的组织技能才能将所有这些整合在一起。因此,事务数据设计不仅是一项技术技能,而且还涉及过程计划技能,其中涉及很多人,彼此之间会互相碰头,直到您弄对了。

    关于sql-server - 报表数据库的最佳解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2735250/

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