Sql server 如何在SQL Server 2014中更快地检索图像?
我们使用的是SQL Server 2014(不是SQL Azure),我定义了一个简单的表来存储图像(.jpg)和 存储的图像的最大大小为1MB,此验证在前端进行。我刚刚插入了15幅图像,目前表的大小是5544KB。GraphicID列上有一个主键。没有放置其他索引 但是,当我使用下面的(简单选择)查询检索一个或多个图像时,需要花费较长的时间,如25-30秒Sql server 如何在SQL Server 2014中更快地检索图像?,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我们使用的是SQL Server 2014(不是SQL Azure),我定义了一个简单的表来存储图像(.jpg)和 存储的图像的最大大小为1MB,此验证在前端进行。我刚刚插入了15幅图像,目前表的大小是5544KB。GraphicID列上有一个主键。没有放置其他索引 但是,当我使用下面的(简单选择)查询检索一个或多个图像时,需要花费较长的时间,如25-30秒 select * from [Graphic] where [GraphicID] = 53 是否有一种更快的机制可以在5秒内查询SQL
select * from [Graphic]
where [GraphicID] = 53
是否有一种更快的机制可以在5秒内查询SQL Server中的图像
SQL Server 2014中是否有其他存储和检索图像的机制以提高性能
请帮忙
谢谢
巴努
如果这确实是您的模式(而且您似乎非常不确定),那么问题在于您从未向表中添加索引。在GraphicID
上添加聚集索引,它应该修复这个特定的访问模式
另一个注意事项是,如果您知道
varbinary
的最大大小(您说过您知道),那么您应该使用它,而不是使用max
。这样,表格布局会将图像存储在行内(最大为某一大小),而不是在末尾追加图像,从而使较大、零碎表格的行检索(select*
)速度大大加快。用于检索结果的查询是什么?表上有哪些索引?停止在数据库中存储图像。性能问题应包括解释分析以及有关表大小、索引、当前时间性能、期望时间等的一些信息。慢是一个相对术语,我们需要一个实际值进行比较。Google FileStream客户端在哪里(进行查询的人)关于服务器?我看到您有一些与Azure相关的问题。如果您是通过internet获取的,那么网络传输可能是主要问题…对于他的表,大小为5mb,这一点都不重要。这是varbinary(max)
这把他搞砸了。不,不是,这只在插入时才重要。选择它相对比较快。你可以争辩,但他在表中只有15条记录。不是15000000条。
select * from [Graphic]
where [GraphicID] = 53
CREATE TABLE [dbo].[Graphic](
[GraphicID] [int] IDENTITY(1,1) NOT NULL,
[FileName] [varchar](100) NOT NULL,
[FileDescription] [nvarchar](200) NULL,
[Image] [varbinary](max) NULL
)