SQL Server2005查询计划指南
2007-07-31 09:47:37 来源:WEB开发网核心提示:问:如果应用程序数据库查询性能低下,而我们又无法获得源代码来修改查询文本,SQL Server2005查询计划指南,在不直接更改查询文本的前提下,怎样提高查询性能?答:SQL Server 2005引入了称为”计划指南”的新特性,这些计划指南用于覆盖查询类的数据库的当前 PARAMETERIZA
问:如果应用程序数据库查询性能低下,而我们又无法获得源代码来修改查询文本,
在不直接更改查询文本的前提下,怎样提高查询性能?
答:SQL Server 2005引入了称为”计划指南”的新特性,可以帮解决上述问题。
原理:
1. 当应用程序向Sql Server发送代码,查询优化器首先检查在缓存中是否有一个适当的询问计划,如果有,查询就按被找到的查询计划执行。
2. 如果没有匹配的查询计划,代码将被与一个称为内部查寻表(lookup table)比较, 看是否有一个已存在的计划指南与之匹配。
3. 如果在第2步找到匹配的计划指南,询问优化器将修改源代码以包括计划指南中查询提示。源代码中之前的任何查询提示将被新提示替换。
4. 查询计划将被编译和缓存。
5. 查询将按照你之前在计划指南设定的查询提示执行。
计划指南的分类:
有三种方式的计划指南:
1.OBJECT 计划指南:与在 Transact-SQL 存储过程、标量函数、多语句表值函数和 DML 触发器的上下文中执行的查询匹配。
2.SQL 计划指南:与在独立的 Transact-SQL 语句和批处理(不属于数据库对象)的上下文中执行的查询匹配。基于 SQL 的计划指南还可用于与参数化为指定形式的查询匹配。SQL 计划指南适用于应用程序使用 sp_executesql 系统存储过程频繁提交的语句和批处理。
3.TEMPLATE 计划指南:与参数化为指定形式的独立查询匹配。这些计划指南用于覆盖查询类的数据库的当前 PARAMETERIZATION 数据库 SET 选项。TEMPLATE 计划指南用于覆盖特定查询形式的参数化行为。您可以在以下任一情况下创建 TEMPLATE 计划指南。
可以在计划指南使用中的查询提示:
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接