我的数据库中有一个表,我们用作文件存储,文件本身存储在一个varbinary
列中,直到最近这一切似乎都运行良好,我们注意到该表的一个实例基本上“卡住”了插入语句.
检查sys.dm_os_waiting_tasks
显示插入语句触发了统计更新,并且此统计更新花费了很长时间。(17 分钟)。
这是我们发现运行的语句:
SELECT StatMan([SC0], [LC0]) FROM
(SELECT TOP 100 PERCENT CONVERT([varbinary](200),
SUBSTRING ([Data], 1, 100)++substring([Data],
case when LEN([Data])<=200 then 101 else
LEN([Data])-99 end, 100)) AS [SC0],
datalength([Data]) AS [LC0]
FROM [FileSystem].[FileData] WITH
(READUNCOMMITTED) ORDER BY [SC0] ) AS _MS_UPDSTATS_TBL
Run Code Online (Sandbox Code Playgroud)
该表中大约有 2000 行,如下所示:
CREATE TABLE [FileSystem].[FileData]
(
[Id] [uniqueidentifier] NOT NULL CONSTRAINT [DF__FileData__Id__09DE7BCC] DEFAULT (newsequentialid()),
[Data] [varbinary] (max) NULL,
[FileHash] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[FileSize] [bigint] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] …
Run Code Online (Sandbox Code Playgroud)