haitao:
表提示--因为 SQL Server 查询优化器通常为查询选择最优执行计划,所以建议只将 <join_hint>、<query_hint>、<table_hint> 和 <view……
[阅读: 642] 2005-09-23 02:49:30
表提示
表提示指定一个表扫描、查询优化器要使用的一个或多个索引或查询优化器要在该表中为该 SELECT 语句使用的锁定方法。虽然这是一个选项,但查询优化器通常无须指定提示就能够选择最佳优化方法。
注意 因为 SQL Server 查询优化器通常为查询选择最优执行计划,所以建议只将 <join_hint>、<query_hint>、<table_hint> 和 <view_hint> 作为经验丰富的开发人员和数据库管理员的最终手段。
如果查询计划不访问表,则忽略表提示。这可能是优化器作出完全不访问该表的选择的结果,或改为访问索引视图。在后一种情况中,使用 OPTION (EXPAND VIEWS) 查询提示可阻止使用索引视图。
鼓励在表提示之间使用逗号,尽管这是可选的。向后兼容性支持使用空格而不是逗号分隔提示。
鼓励使用 WITH 关键字,尽管目前这还不是必须。在将来的 SQL Server 版本中,WITH 可能会成为必需的关键字。
在 SQL Server 2000 中,所有的锁提示都传播给视图中引用的所有基表和视图。另外,SQL Server 执行相应的锁一致性检查。
如果表(包括系统表)中包含计算列,而这些计算列由访问其它表中的列的表达式或函数计算而得,则不在那些表上使用表提示(不传播表提示)。例如,在查询中的表上指定 NOLOCK 表提示。该表包含由访问另一表中的列的表达式和函数组合计算到的计算列。这些由表达式和函数引用的表在被访问时并不使用 NOLOCK 表提示。