我有一个Epicor 9 ERP数据库,我最近负责(新的工作)。服务器正在运行服务器2008 R2和Server 2008 R2 64位。主生产数据库从7个月前的16 go开始,已经稳定地发展到80gb+。他们确实安排了一项维护工作,每周日晚上缩减所有DB的空间,限制50 DB,空闲空间10%。
按照目前的增长速度,服务器的驱动器空间将在不到90天内最大,我将被迫升级服务器或将DB移动到SAN。总体来说,系统性能很差,只是系统速度很慢。
当我运行“顶部表的磁盘使用情况”报告时,我会看到以下内容:
我正在等待来自Epicor的关于适当照顾和喂养他们的系统的回复,但是索引似乎使用了大量的空间。如前所述,我只是在最近才接管了这个系统,我正试图尽快解决这个问题。
任何帮助都将不胜感激。
编辑:警告任何阅读这篇文章的人。删除由测试Epicor 9数据库完成的答案中描述的重复索引。E9显然以一种非标准的方式使用索引。它有一个进步层,用于优化进步索引和4GL (又名ABL)代码。我不能明确地说这是造成问题的原因,但这似乎是最有可能的罪魁祸首。尝试登录到E9测试会出现一个“SQL脚本需要运行”的错误,而且数据库似乎被困在了一个a状态。
发布于 2012-03-02 21:21:04
查看一下金伯利特里普的博客删除重复索引,并使用脚本来检查是否存在完全冗余/重复的索引。
发布于 2012-03-02 21:13:50
如果索引正在疯狂地增长,我的直觉告诉我,是一些坏的或不必要的索引正在扼杀这里的磁盘空间。
我使用DB2 (与SQLServer相反),但我认为概念应该是相同的。
在我们的例子中,我们将看到什么是指数基数。换句话说,索引中的每个列有多少唯一的值?你拥有的价值观越独特越好。如果在状态字段上有一个索引,该字段只有两个或三个值,并且有数百万条记录,则必须不断地重建索引。删除这些索引,因为这些索引将占用大量磁盘空间,同时在执行插入或更新时,还会杀死应用程序的性能。
另外,检查冗余索引(即在不同索引中反复使用相同的列)。我不能代表SQLServer说话,但至少在DB2中,冗余索引毫无价值,只会占用磁盘空间。DB2's查询优化器将只使用其中一个索引,而忽略其他索引。
再说一次.我来自不同的产品,但我相信思维模式是一样的。分析索引和它们所使用的数据,看看哪些是真正必要的。删除几个索引可能会大大节省您的开支。
发布于 2012-03-05 16:35:36
可能导致荒谬增长的另一件事是未能频繁备份事务日志。如果你不支持它,它会一直长到耗尽你所有的空间。这与数据库备份是分开的。也请查看您的事务日志的大小。
https://dba.stackexchange.com/questions/14304
复制相似问题