Ser*_*sen 5 sql sql-server sql-server-2008
以下陈述究竟是做什么的?它是否重新索引所有名为'?'的表 填充因子为80%?
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"
Run Code Online (Sandbox Code Playgroud)
它确实将查询时间从23秒提高到几乎立即,但我想了解原因.
不完全 - 当你使用时sp_MSforeachtable,问号是表名的占位符(因为它依次遍历每个表).
在回复你的评论中的第二个问题时,是的 - 根据DBCC DBREINDEX关于第二个参数的文档:
如果指定了index_name,则必须指定table_name.如果未指定index_name或为"",则重建表的所有索引.