【发布时间】: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