问题描述:
继上一次由于表统计信息导致标题所阐述问题之后,这次是另外一个同学更改表结构出现了同样问题。由于他并没有修改表数据,因此推测不能通过更新表统计信息解决该问题。
环境:SQL Server 2008
解决思路:
有了上一次的经验,因此排除了procedure本身逻辑问题,开始考虑索引重建,表分区等方面。 解决方法:突然想到上次出现同样问题时另一个同学说的重新编译procedure,with recompile。结果还真好了。(这次是其他同事解决的,具体语法没太关注,下次更新上)似乎是这样写的:
Create procedure proc_nm
(
Parameters
) with recompile
结论:对于更改数据过亿的表,在进行任何操作都要小心。比如是否需要考虑索引问题,分区问题,统计信息,重编译等等。