Pix*_*ted 10 performance sql-server t-sql import database-internals
阅读数据加载性能指南 后,我仍然不确定是否有必要将 TABLOCK 表提示添加到使用聚集索引定义的空临时表中,以便获得最少的日志记录。
显然,临时表是在 TempDB 中创建的,它在 SIMPLE 恢复模式下运行,所以我认为它是最小日志记录的完美候选者;然而,我找不到一段话来证实它。
临时表是否是最小日志记录的候选者,如果是,是否值得为永久表添加 TABLOCK 提示?
Pau*_*ite 18
我不确定是否有必要将
TABLOCK表提示添加到使用聚集索引定义的空临时表中,以便获得最少的日志记录。
否。本地临时表 ( #temp) 是创建会话私有的,因此不需要表锁定提示。在 中创建的全局临时表 ( ##temp) 或常规表 ( dbo.temp)需要表锁定提示tempdb,因为这些可以从多个会话访问。
请注意,即使没有应用完整的最小日志记录优化,创建的表也会tempdb受益于其他优化,例如不需要记录REDO信息。您可以使用未记录的sys.fn_dblog. 常规日志记录将具有行记录的记录,例如LOP_INSERT_ROWS.
请注意,需要添加TABLOCK到本地临时表才能INSERT...SELECT在 SQL Server 2016 中并行执行查询,请参阅 Microsoft 知识库文章:
在 SQL Server 2016 中运行 INSERT.. SELECT 操作时性能不佳
| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |