我正在尝试更新我们的一些表的统计信息,这些表的名称作为我的过程的输入。但是,我无法使用以下代码编译该过程。
update index statistics @tableName
不允许动态表名吗?或者,下面的陈述会起作用吗?
select @statsCmd = 'update index statistics '+@tableName
exec(@statsCmd)
此外,“更新统计信息”和“更新索引统计信息”之间的显着区别是什么?
我正在尝试更新我们的一些表的统计信息,这些表的名称作为我的过程的输入。但是,我无法使用以下代码编译该过程。
update index statistics @tableName
不允许动态表名吗?或者,下面的陈述会起作用吗?
select @statsCmd = 'update index statistics '+@tableName
exec(@statsCmd)
此外,“更新统计信息”和“更新索引统计信息”之间的显着区别是什么?
看起来update statistics
确实不允许动态表名,但第二条语句应该可以正常工作。
关于update statistics
& update index statistics
:
可以针对没有索引的表和其他非索引对象以及索引运行更新统计信息。如果针对索引运行,它实际上update index statistics
在幕后执行。 更新索引统计信息仅更新指定表上索引的统计信息。
另外,您是否考虑过使用Job Scheduler 以及datachange
自动更新统计信息的功能?