SQL Server中表提示的用途是什么?
SQL Server中的表提示(如SQL Server中表提示的用途是什么?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,SQL Server中的表提示(如NOLOCK和READUNCOMMITTED)的用途是什么 请举例说明 另外,为什么不能为通过INSERT、UPDATE或DELETE操作修改的表指定它们呢?它们允许您逐个表设置事务隔离级别,而不是为整个查询或连接设置事务隔离级别 它们还可以用于触发一些功能,如最小日志记录(使用TABLOCK,在INSERT上设置正确的跟踪标志,并且可以最小日志记录) 通常,最好使用连接级别设置。正如评论员所指出的,联机丛书对表提示有很好的描述(和示例),包括哪些提示可用于哪些
NOLOCK
和READUNCOMMITTED
)的用途是什么
请举例说明
另外,为什么不能为通过
INSERT
、UPDATE
或DELETE
操作修改的表指定它们呢?它们允许您逐个表设置事务隔离级别,而不是为整个查询或连接设置事务隔离级别
它们还可以用于触发一些功能,如最小日志记录(使用TABLOCK
,在INSERT
上设置正确的跟踪标志,并且可以最小日志记录)
通常,最好使用连接级别设置。正如评论员所指出的,联机丛书对表提示有很好的描述(和示例),包括哪些提示可用于哪些操作 在页面顶部还有一个很大的警告,经常被忽略: 注意,因为SQL Server查询优化器通常会选择 对于查询的最佳执行计划,我们建议只使用提示 作为经验丰富的开发人员和数据库管理员的最后手段 管理员
虽然优化器在选择最佳计划时的准确性是有争议的,但警告的后半部分肯定是正确的;除非您确信自己需要表格提示,否则不要使用表格提示,而且这种保证通常需要经验。表格提示用于修改查询优化器关于次要问题插入、删除、删除和删除的默认行为,而且无论隔离级别如何,更新都会使用锁,所以允许这样做没有任何意义。