我在choose = 0
while (choose != 1)
choose = int(input())
if choose == 1:
print(“Hi.”)
列中存储小(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
是主键)
我将代码上传到我的(廉价)托管公司,并执行相同的查询,需要13秒。
我们都在运行SQL Server 2016.它们只是提供了一个没有真正访问权限的数据库(没有Id
或类似的东西),所以我没有配置文件的权限,但代码看起来似乎坚持选择。
无论如何,我可以找出为什么相同的查询在他们的环境中需要这么长时间,而且我的速度很快?注意,数据库从他们的环境备份并恢复到我的...所以它是完全相同的数据库。
所有其他查询都很快。只是sa
上的这个选择很慢。我不确定如何诊断它,然后查询他们的支持。
答案 0 :(得分:1)
我可以想到你可以尝试解决的两件事。
一:
CREATE NONCLUSTERED INDEX IX_ImageLibrary_FileType ON [DB_9FB6F6_smartplates].[dbo].[ImageLibrary] (filetype)
加快你的更新语句,我认为是慢查询。
二:
您是否可以访问生产数据库中的SQL Server Management Studio? (不是当地人)。尝试请求两个查询的执行计划,看看它是否给你任何建议。
另外,检查主键的碎片(我想它在列Id
上?)