69得票7回答
我应该什么时候重建索引?

什么时候应该重新构建我的关系数据库(SQL Server)中的索引? 是否有定期重建索引的情况?

61得票4回答
SQL Server: 如何跟踪 CREATE INDEX 命令的进度? 在 SQL Server 中,CREATE INDEX 命令用于创建索引以提高查询性能。然而,在处理大型表时,创建索引可能需要一些时间。为了跟踪 CREATE INDEX 命令的进度,可以采取以下步骤: 1. 使用动态管理视图 (DMV):通过查询 sys.dm_exec_requests DMV,可以获取有关正在执行的命令的信息。使用该视图可以查看 CREATE INDEX 命令的状态、进度百分比和估计完成时间。 2. 使用活动监视器:SQL Server 提供了活动监视器工具,可用于监视数据库操作的进度。通过选择适当的监视器选项,可以跟踪 CREATE INDEX 命令的执行情况。 3. 使用查询窗口:在 SQL Server Management Studio (SSMS) 的查询窗口中执行 CREATE INDEX 命令时,可以在消息窗口中实时查看命令的执行进度。 4. 使用扩展事件:通过配置扩展事件会话,可以捕获 CREATE INDEX 命令的进度信息。这些信息可以保存到文件或发送到其他目标,以便稍后进行分析。 请注意,CREATE INDEX 命令的执行时间取决于表的大小、索引类型和服务器负载等因素。因此,在跟踪进度时,应该考虑到这些因素,并根据实际情况进行相应的调整。 希望以上信息对您有所帮助!

SQL Server 2014,标准版 我了解到dm_exec_requests中的percent_complete对于CREATE INDEX无效,并且在实践中,percent_complete一直停留在0。所以这并没有帮助。 我目前使用下面的方法,至少可以显示进度(即索引创建未被阻塞)...

32得票1回答
全文索引维护指南

什么准则应该考虑来维护全文索引? 我应该重建还是重新组织全文目录(见BOL)?合理的维护频率是多久?有哪些启发式方法(类似于10%和30%的碎片化阈值),可以用来确定何时需要进行维护? (以下所有内容仅为问题的额外信息和我已经思考到的内容。) 额外信息:我的初步研究 关于B树索引维护有...

21得票6回答
如何在索引重组过程中防止事务日志变满? 在进行索引重组时,事务日志可能会变满,导致数据库性能下降甚至停止工作。为了避免这种情况发生,我们可以采取以下措施: 1. 增加事务日志文件的大小:通过增加事务日志文件的大小,可以提供更多的空间来记录索引重组期间的事务日志。这样可以减少事务日志变满的风险。 2. 将数据库恢复模式设置为简单模式:将数据库的恢复模式设置为简单模式可以减少事务日志的增长速度。但是需要注意的是,简单模式下无法进行点对点恢复,因此在选择此选项之前,请确保已经备份了足够的数据。 3. 分批执行索引重组操作:将索引重组操作分成多个较小的批次进行执行,而不是一次性处理所有索引。这样可以减少每个批次产生的事务日志量,降低事务日志变满的风险。 4. 定期备份事务日志:定期备份事务日志可以释放事务日志中的空间,从而避免事务日志变满。建议根据实际情况设置合适的备份频率。 通过采取上述措施,我们可以有效地防止事务日志在索引重组过程中变满,确保数据库的正常运行。

我们有多台机器,我们已经预先分配了50GB的事务日志大小。我试图重新组织的表的大小是55-60GB,但会持续增加。我想重新组织的主要原因是为了回收空间,任何由此带来的性能提升都是额外的好处。 表的碎片化水平为30-35%。在其中一些机器上,我遇到了“事务日志已满”的错误,导致重新组织失败。事...

12得票3回答
索引优化后,查询和更新非常缓慢。

数据库 SQL Server 2017 Enterprise CU16 14.0.3076.1 我们最近尝试从默认的索引重建维护作业切换到 Ola Hallengren 的 IndexOptimize。默认的索引重建作业已经运行了几个月,没有出现任何问题,并且查询和更新的执行时间也在可接受范...

12得票2回答
MySQL indexes maintenance

我对如何在MySQL中维护索引以防止碎片化并优化某些查询的执行进行了大量研究。 我熟悉那个计算表格可用空间与数据和索引使用空间之比的公式。 然而,我的主要问题仍未得到解答。也许这是因为我熟悉SQL Server中的索引维护,并且我倾向于认为在MySQL中应该有类似的方法。 在SQL Se...

8得票1回答
数据库维护每天重建索引。

我的数据库大约是2.5TB。每天重建索引是一个好的做法吗? 我们每天删除大约20GB的数据,并且同时删除分区,然后添加新的分区。运行重建索引需要8小时,有时候甚至需要24小时。在此期间,日志文件会增加到300GB。 我们需要每天向客户发送关于数据库碎片化的报告。当看到99%或98%时,他们...

8得票6回答
索引重建时间是否取决于碎片化程度?

索引重建所需的时间是否取决于碎片化程度? 如果同一索引的重建在40%碎片化时需要1分钟,那么80%碎片化的索引重建大约需要2分钟吗? 我询问的是执行所需操作可能需要的运行时间(例如以秒为单位),而不是在什么特定情况下需要哪种操作。我知道在进行索引重组或重建/统计更新时应遵循基本的最佳实践。...

7得票2回答
在线重建索引和离线重建索引会产生不同的结果。

我在一个外键列上有一个非聚集、非唯一的索引,类型为bigint。当我在线重建索引时,平均碎片化降至3%,有2个片段和30个页面。 当我离线运行相同的重建索引时,平均碎片化为25%,有4个片段和28个页面。 我认为FILLFACTOR是90。数据库大小为77GB。我不是DBA或类似角色,我是...

7得票1回答
禁用索引的页面级锁定后,出现了索引碎片化问题。

我有一个禁用页面级锁定的索引,并且现在这个索引存在碎片问题。 我知道我无法对索引进行重新组织,但我认为我可以对索引进行重建。 现在我认为重建也不起作用。我正在使用默认的填充因子100。我的数据库非常庞大,因此我不想通过将填充因子设置为80%或更低来增加表格/数据库的大小。当我说“不起作用”...