小编blu*_*iro的帖子

数据库像疯了一样增长 - 我该怎么办?

我有一个 Epicor 9 ERP 数据库,我最近负责(新工作)。服务器正在运行带有 SQL Server 2008 R2 64 位的 Server 2008 R2。主要生产数据库在 7 个月前(上线)从 16GB 开始,并稳步增长到 80GB+。他们确实安排了一项维护工作,在每个星期天晚上缩小所有数据库,限制为 50 MB,可用空间为 10%。

按照目前的增长速度,服务器的驱动器空间将在不到 90 天的时间内达到最大值,我将被迫升级服务器或将数据库移至 SAN。整体系统性能很差,系统很慢。

当我运行“顶级表的磁盘使用情况”报告时,我看到以下内容:

  • 记录数:115,117,737
  • 保留 (KB):83,609,584
  • 数据 (KB):81,867,248
  • 索引 (KB):52,263,296
  • 未使用 (KB) 1,742,336

我正在等待 Epicor 关于适当照顾和喂养他们的系统的回音,但索引似乎使用了大量的空间。如前所述,我最近才接管了这个系统,我正在努力尽快弄清楚。

任何帮助,将不胜感激。

编辑:警告任何阅读本文的人。删除了重复索引,如这里的答案中所述,由测试 Epicor 9 数据库完成。E9 显然以非标准方式使用索引。它有一个 Progress 层,用于优化 Progress 和 4GL(又名 ABL)代码的索引。我不能肯定地说这是导致问题的原因,但它似乎是最有可能的罪魁祸首。尝试登录 E9 测试会出现“需要运行 SQL 脚本”错误,并且数据库似乎卡在 ALTER 状态。

sql-server-2008

3
推荐指数
2
解决办法
1231
查看次数

除了一张表外,我可以在数据库中重建索引吗?

我的数据库中有一个表,该表由应用程序服务器不断监视以进行更改。不幸的是,重建与此表相关的索引会中断应用服务器的连接。这会导致应用服务器上的打印作业和各种其他进程以静默方式失败。

我创建了一个小型监控 SQL 作业,让我知道这种情况何时发生,但我更愿意首先防止它发生。

出于性能原因,我需要每周重建索引,但我可以跳过与该表关联的索引。

如何在不触及该表的情况下为数据库的其余部分重建索引?

编辑:我目前正在使用 SSIS 作业(固定维护计划)来重建数据库中所有表的所有索引。之后它会更新统计信息并检查完整性。

sql-server maintenance t-sql sql-server-2008-r2

3
推荐指数
1
解决办法
2414
查看次数