很慢VARBINARY(MAX)选择

很慢VARBINARY(MAX)选择

问题描述:

我在VARBINARY(MAX)列中存储小文件(介于20K和2MB之间)。在本地开发环境(在我的开发PC上),选择需要20ms。很慢VARBINARY(MAX)选择

UPDATE [DB_9FB6F6_smartplates].[dbo].[ImageLibrary] 
SET filetype = 'jpg' 
WHERE filetype = 'exiting' 

SELECT BinaryData 
FROM [ImageLibrary] 
WHERE Id = 1056 

(其中Id是主键)

我上传我的代码,以我的(cheapish)托管公司,并执行相同的查询,但它需要13秒。

我们都在运行SQL Server 2016.它们只是提供一个没有真正访问权限的数据库(没有sa或类似的东西),所以我没有权限配置文件,但代码确实似乎坚持选择。

有无论如何,我可以找出为什么相同的查询需要这么长的时间在他们的环境,我的很快?请注意,数据库是从他们的环境备份并恢复到我的...因此它是完全相同的数据库。

所有其他查询都很快。这只是在VARCHAR(MAX)上的这个选择很慢。我不知道如何诊断它,然后查询他们的支持。

我可以想到两件事你可以尝试解决这个问题。

一:

CREATE NONCLUSTERED INDEX IX_ImageLibrary_FileType ON [DB_9FB6F6_smartplates].[dbo].[ImageLibrary] (filetype) 

加快您的更新语句,我认为是慢查询。

二: 您是否有权访问生产数据库上的SQL Server Management Studio? (不是本地的)。试着请求两个查询的执行计划,看看它是否给你提出任何建议。 此外,检查主键的碎片(我想它在列Id?)