Ban*_*ice 4 sql-server-2005 cache
目前正在研究重新索引我们的 sql 数据库,但找不到有关过程缓存是否会受到影响的任何信息。任何帮助或信息都会很棒。我们使用 SQL Server 2005 作为我们的 DBMS。
执行计划缓存和重用列出了一些触发重新编译的因素:
重新编译执行计划
根据数据库的新状态,数据库中的某些更改可能导致执行计划效率低下或无效。SQL Server 检测到使执行计划无效的更改并将该计划标记为无效。然后必须为下一个执行查询的连接重新编译新计划。使计划无效的条件包括:
- 对查询引用的表或视图所做的更改(ALTER TABLE 和 ALTER VIEW)。
- 对单个过程所做的更改,这将从缓存中删除该过程的所有计划 (ALTER PROCEDURE)。
- 对执行计划使用的任何索引的更改。
- 执行计划使用的统计信息的更新,从语句显式生成,例如 UPDATE STATISTICS,或自动生成。
- 删除执行计划使用的索引。
- 对 sp_recompile 的显式调用。
- 对键的大量更改(由修改查询引用的表的其他用户的 INSERT 或 DELETE 语句生成)。
- 对于带有触发器的表,如果插入或删除的表中的行数显着增长。
- 使用 WITH RECOMPILE 选项执行存储过程。
由于索引重建操作也会更新统计信息作为副作用,因此索引重建将触发计划失效(重新编译)。
| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |