En Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) sobre Windows XP SP 3 se cuenta con una base de datos que tiene una tabla con una columna Varbinary(Max). La tabla tiene 300 registros con archivos .jpg en la columna varbinary y al ejecutar una consulta SELECT campoVarBinary FROM Tabla el motor tarda en presentar todas las filas, en promedio, 4 minutos.
¿Existe alguna forma de mejorar el tiempo de respuesta?
Se probó habilitar FileStream y crear un FILEGROUP, en una partición del disco diferente a la del FILEGROUP para datos y log, que contenga FILESTREAM entonces se utiliza el campo varbinary con FILESTREAM pero el tiempo de respuesta no ha mejorado.
Los parámetros de creación de la base de datos y de la tabla en cuestión son:
--Creación de la base de datos
CREATE DATABASE FileStreamDB ON PRIMARY
( NAME = FileStreamDB_Data,
FILENAME = N'C:\FileStream\FileStreamDB_Data.mdf',
SIZE = 10MB,
MAXSIZE = 50MB,
FILEGROWTH = 15%),
FILEGROUP MyDBData
( NAME = MyFileStream_Data,
FILENAME = N'C:\FileStream\FileStreamDB_Data.ndf',
SIZE = 10MB,
MAXSIZE = 50MB,
FILEGROWTH = 5MB),
FILEGROUP FileStream CONTAINS FILESTREAM
( NAME = FileStream,
FILENAME = N'D:\FileStream\FileStreamData')
LOG ON
( NAME = 'FileStreamDB_Log',
FILENAME = N'D:\FileStream\FileStreamDB_Log.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB);
GO
--Creación de la tabla
CREATE TABLE [Cliente](
[ClienteId] uniqueidentifier ROWGUIDCOL NOT NULL,
[ClienteNombre] [char](30) NULL,
[ClienteApellido] [char](30) NULL,
[ClienteFoto] [varbinary](max) filestream NULL,
PRIMARY KEY CLUSTERED
(
[ClienteId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Agradeciendo su atención, saludo atentamente