首页 > 解决方案 > INSERT INTO WITH (TABLOCK) 偶尔没有最低限度地记录

问题描述

加载 sql server 2016 (SP2 CU10) 列存储表时,我遇到了一个奇怪的问题。我正在使用查询提示 TABLOCK,所以它应该被最少记录。有时(假设每 20 次执行 1 次)由于事务的日志增长 (100GB+),查询将消耗整个磁盘。几分钟后才用完全相同的数据执行完全相同的查询,日志基本上没有(10MB)。

查询如下,平均加载大约 1 亿行

INSERT INTO dbo.tbl1 WITH (TABLOCK)
SELECT cols FROM tbl2

检查查询存储,“正常”执行和“日志增长”执行之间的计划完全相同。我唯一的假设是由于当时的服务器条件。如果有服务器压力,查询决定记录完整的插入......但我找不到与此相关的任何内容。

有任何想法吗?

标签: sql-serversql-insertsql-server-2016columnstore

解决方案


推荐阅读