Dynamics AX 2012 性能优化之 SQL Server 复制

Dynamics AX 2012 性能优化之 SQL Server 复制

分析数据滞后

在博文 Dynamics AX 2012 在BI分析中创建数据仓库的必要性 里,Reinhard 阐述了在 AX 的 BI 分析过程当中,创建数据仓库的必要性。html

数据仓库将分析的工做负载,从事务的工做负载中分离出来,让企业可以整合来自多个数据源的数据sql

可是从 AX 数据库中抽取数据到数据仓库的时候,Reinhard 发现耗时很是长。Reinhard 认为主要有三个缘由:数据库

  • 咱们不敢贸然在AX生产环境的数据库层面作优化
  • 数据基数大
  • 须要新增和更新的数据多

由于数据抽取对正式环境的性能影响很是大,而且耗时长,因此咱们只能选择在下班后去执行ETL做业。这样作的缺点也是显而易见的,不管咱们的报表跑得多快,可是展现的数据老是滞后的性能优化

SQL Server 复制

有没有什么方案,可以实时地展现数据,又对正式环境的性能影响小呢?这就是 Reinhard 在本文中要说的SQL Server 复制服务器

SQL Server 复制 是一项很是成熟的技术,它主要应用在如下几个场景中:网络

  1. 负载转移。将数据复制到其余数据库服务器,来减小当前服务器的负载。好比建立只读的报表环境。
  2. 合并数据。有多个门店,每一个门店的数据库服务器都维护着本身的数据。总部须要将全部门店的数据合并到一块儿。
  3. 故障转移。

Reinhard 这里的应用场景其实就是负载转移。将所需的数据从生产库发布到只读的复制库中,而后在复制库上执行数据抽取做业,这样就将一部分工做负载,从事务的工做负载中分离出来。并发

复制的类型

复制类型 中,微软介绍了三种复制类型,分别是:性能

  • 事务复制
  • 合并复制
  • 快照复制

这三种复制都有各自的特色,须要根据自身的实际环境和业务场景来选择,而且要注意复制过程当中的表锁。主要考虑因素有:优化

  • 要复制的数据类型,数量,和更新频率
  • 订阅服务器上的数据是只读的,仍是能够更新的
  • 涉及到的计算机的数量和位置

Reinhard 这里简单说说不一样复制类型的特色,详细信息还请参考微软官方文档SQL Server 复制日志

快照复制

特色

  • 不跟踪数据更改,每次应用快照都彻底覆盖现有数据。
  • 过程不一致,结果一致。

适合场景

数据更改量大,但不多更改,容许必定时间的滞后。

资源占用

由于不跟踪数据更改,因此连续开销比事务复制低。可是若是数据集很是大,也须要使用大量资源生成和应用快照。

表锁

整个快照生成过程当中都是用共享锁

事务复制

特色

  • 经过SQL Server事务日志跟踪更改。
  • 过程一致,结果一致。

适合场景

  • 数据更改频繁,数据复制接近实时。
  • 服务器到服务器的环境。
  • 提升可扩展性和可用性
  • 数据仓库和报表
  • 集成多个站点的数据
  • 集成异构数据
  • 将批处理的负载分离出去

资源占用

连续开销比快照复制高。

表锁

事务复制默认使用并发快照处理,在整个初始化快照生成过程当中并不保留共享锁,期间用户能够继续工做。

合并复制

特色

  • 经过触发器和源数据表跟踪数据更改。
  • 过程不一致。
  • 不一样站点能够脱机修改同一数据,在合并更新时须要处理冲突。

适合场景

  • 不一样站点接收数据,而后脱机更改数据,再与发布服务器和其余订阅服务器同步更改。
  • 服务器到客户端的环境。

表锁

不使用锁。

其它 SQL Server 高可用性和数据恢复技术

故障转移集群

经过添加相关的硬件,可使用故障转移集群保证数据中心内的高可用性。

故障转移集群中的全部SQL Server实例,在网络上显示为一个节点。

数据库镜像

数据库镜像是一个软件方案。它有一个主体服务器和一些镜像服务器。

在主体服务器可用的时候,镜像服务器是不能处理读写请求的。

日志传输

日志传输能够将主数据库的事务日志备份,自动发送给多个辅助数据库。

主数据库可用的时候,辅助数据库是不支持写数据。

AlwaysOn高可用性组

在SQL server 2012后,新增了AlwaysOn高可用性组特性。

辅助副本复制的是主体节点的完整数据库,不能选择复制部分数据到辅助节点。它的辅助副本能够用于报表和备份,可是不支持写数据。

总结

从上面的对比中,Reinhard 认为,事务复制更适合咱们的应用场景。它可以在企业层构建可扩展、高可用、松耦合的集成生态系统。

相关文章
相关标签/搜索