加速NAV2013的数据升级

时间:2014-02-09 12:43:15

标签: sql performance dynamics-nav

我正在对客户端数据库进行NAV2013升级,这涉及大量繁重的SQL查询

Microsoft通过在NAV2013中对它们进行规范化来“压缩”维度,从而节省了大量的数据库空间,但该操作要求在数据库中检查和移动大量数据以构建新的维度集

在有问题的客户端的50gig数据库上运行升级过程需要永远。为了检查时间,我已经对其当前数据的备份进行了模拟升级。进行升级的服务器是一个新的SQL服务器,相当不错的规格,32g的内存。

他们希望在一个周末完成升级,但升级尺寸查询绝对会使处理器连续2/3天完成。我无法改变升级中涉及的查询,因此我能想出的唯一选择是以某种方式从外部优化SQL性能

我可以对数据库做些什么来最大限度地提高其工作的性能或效率吗?

由于没有人需要使用SQL服务器,我可以做任何我想做的事情而不会影响除升级之外的任何事情,所以我完全愿意关闭可能占用处理器或减慢查询处理的功能(我正在考虑尽量减少SQL所做的事务记录量,但我还没有考虑过这个问题)

当我星期一在办公室时,我会和我们的表演专家交谈,但我想知道在此期间我是否还有什么可以尝试的。

我发现的大多数性能优化文章都讨论了在数据库正在使用的上下文中使用密钥等优化查询的性能 - 这是不同的,因为它是一次性升级过程而且只需要发生一次

提前致谢!

1 个答案:

答案 0 :(得分:1)

升级通常需要很长时间。特别是从NAV 2009到NAV 2013,因为Dimensions的工作方式发生了重大变化。

更新例程必须生成新的维度集ID以表示维度的每个组合,然后相应地标记关联的记录。它经过了大量的处理,但使Dimensions更快,更适合长寿。

<强>数据库

假设您可以在运行传输之前进行完整备份,则可以禁用FULL日志记录来说明SIMPLE。虽然这在技术上仍会记录,但它本身会管理空间。

确保正确拆分数据库文件对于获得最佳性能非常重要(包括master&gt; tempdb)。

索引&amp;键

我猜微软会对维度表进行大幅优化(关键是明智的)。对于NAV 2013中的维度来说,这是一个很大的变化。话虽如此,可能值得禁用表格上的索引(如果可能),因为这会影响写入性能。

升级工具包

升级工具包(来自内存)实际上执行原始SQL以传输大数据。如果你能够,可能值得查看升级工具包的代码,看看你是否可以自己直接在SQL中运行它(虽然你提到你不能改变查询?)。

跳转到PartnerSource以查看Microsoft是否有任何可能优化升级工具包的应用程序修补程序,尽管它已经出了几年,所以它可能已经完全解决了。

备用查询

检查Mibuso(例如)以查看是否有一些用户编写的查询可能会优化向NAV 2013的迁移,显然需要谨慎使用这些备用脚本并在运行之前彻底测试它们。

删除数据

升级需要很长时间的核心原因是需要迁移一堆数据,尤其是几年前的系统。您可能会删除超过设定期限(例如4年)的条目的维度数据,但这意味着无法再使用现有的基于维度的报告等分析数据。