【问题标题】:Performance tuning of ERP System called axavia名为 axavia 的 ERP 系统的性能调整
【发布时间】:2011-02-10 13:54:01
【问题描述】:

我在一家小公司工作,我的工作之一是管理 ERP 系统 'AXAVIA' (www.axavia.com)

有 .NET 客户端和一个大小约为 10GB 的 MSSQL Server 2005 数据库。 该系统在元数据模型上工作,这意味着它们只有很少的表(每个数据类型一个,一个用于关系),并且这些数据是通过即席查询计算的。高达2000批次/秒...

我猜他们并没有真正的数据库专家,因为他们对索引碎片一无所知,而且我已经删除了很多未使用的索引 - 现在数据库缩小了大约 30%...

我还能做些什么来提高性能? - 我现在每晚都重建索引

  • 我认为,没有“缺失索引”,而且主键至少是“正常”
  • 文件系统是一个快速的 10 RAID - 使用 6.6 GB 内存,IO 非常少
  • 服务器是具有一个虚拟 CPU 的 VM Ware - 我想这是最好的可能性:大量小批量将受益于具有 4 核的物理 CPU?!
  • 我也在考虑分区表,但目前数据库还不够大,无法从中受益。

那么 - 还有其他想法吗?

【问题讨论】:

  • 你有一个 EAV:把硬件扔到问题上。去身体力行。
  • 更新:现在它是一个大约 40GB 的 SQL 2008 数据库。它仍然是一个虚拟机,但现在有 4 个内核 - 但优势只有几个 % 有一段时间我把我的日志文件放在 ram 驱动器上 -> 大约 +30%,但风险很大......最大的优势将是一个 ssd ,但是企业级闪存盘太贵了...最后我可以说:问题出在软件上,我几乎无能为力。

标签: sql-server performance erp adhoc-queries


【解决方案1】:

添加一个 CPU,至少用于测试。我会说你可能会在这里遇到问题。一般来说 - 我的意思是一般来说 - 我再也没有一个核心 VMS。即使是最小的机器也有 2 个内核。即使在 Windows 级别(操作系统操作发生在第二个内核上),也可以更快地处理。

今天 10GB 很小。仍然没有数据库糟糕的编程不能杀死(根据你的解释,在你的情况下,很可能正在进行很多糟糕的编程)。开始全面分析为什么事情正在等待。如果他们只是为任何操作使用大量顺序 SQL 来访问服务器,那么您唯一能做的就是确保 (a) 您的等待时间尽可能短,并且 (b) 您拥有尽可能快的 CPU。在像您描述的那样的 sdatabase 中,问题出在程序中 - 基本上只有这么多您可以在数据库级别调整。

【讨论】:

    【解决方案2】:

    如果还没有,请将您的数据和日志文件放在单独的驱动器上。您还可以将 tempdb 移动到它自己的驱动器,并将其拆分为多个文件。在此处阅读 Brent 关于 tempdb 的文章:Brent Ozar

    【讨论】:

    • 感谢您的回答 - 这通常是件好事。但是这个VM中的所有不同驱动器最终都指向同一个Raid......所以我想它不会有太大区别。我没有太多关于突袭的信息,但我认为它很快。
    【解决方案3】:

    我建议您使用 Glenn Berry 的脚本来确定服务器中的问题:

    https://dl.dropboxusercontent.com/u/13748067/SQL%20Server%202005%20Diagnostic%20Information%20Queries(September%202014).sql

    还有许多其他潜在问题,不仅仅是缺少索引。

    我将此脚本用作知识数据库来创建我自己的工具来检查我的 ERP 运行状况。我可以告诉你它运作良好。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 2020-12-07
    相关资源
    最近更新 更多