下面的语句究竟做了什么?它是否重新索引所有名为“?”的表 填充因子为 80% ?
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"
它确实将查询时间从 23 秒缩短到几乎立即,但我想了解原因。
下面的语句究竟做了什么?它是否重新索引所有名为“?”的表 填充因子为 80% ?
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"
它确实将查询时间从 23 秒缩短到几乎立即,但我想了解原因。
不完全-当您使用时sp_MSforeachtable
,问号是表名的占位符(因为它依次循环遍历每个表)。
从评论中回答您的第二个问题,是的 - 根据DBCC DBREINDEX关于第二个参数的文档:
如果指定了 index_name,则必须指定 table_name。如果 index_name 未指定或为“”,则重建表的所有索引。