DBCC DBREINDEX('?', ' ', 80)是做什么的?

7
这个语句是做什么的呢?它会使用80%的填充因子重新索引所有名为“?”的表吗?
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"

它确实将查询时间从23秒提高到了几乎瞬间,但我希望能够理解其中的原因。

好的。索引名称的空格是否意味着所有现有的索引? - Serve Laurijssen
2
正确。http://technet.microsoft.com/zh-cn/library/ms181671.aspx - Nenad Zivkovic
1个回答

8
并不完全正确 - 当使用sp_MSforeachtable时,问号是表名的占位符(因为它循环遍历每个表)。
回答您在评论中提出的第二个问题,是的 - 根据DBCC DBREINDEX文档关于第二个参数的说明:
如果指定了索引名称,则必须指定表名称。如果未指定索引名称或为“ ”,则将重建该表的所有索引。

3
表名,而非数据库名。还有一个名为sp_MSforeachdb的过程,它使用?代替数据库名。 - user743382
@hvd 对不起,对我来说太早了。你当然是正确的,那就是我想到的那个! - Bridge
1
DBCC DBREINDEX已被弃用,或标记为在未来的SQL Server版本中将被删除。 此页面介绍了如何使用ALTER INDEX REBUILD代替。 - Baodad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接