¡Tengo un problema de rendimiento muy particular en el trabajo!¿Cómo mejorar el rendimiento en la tabla de SQL Server con campos de imagen?
En el sistema que estamos usando, hay una tabla que contiene información sobre el proceso de flujo de trabajo actual. Uno de los campos contiene una hoja de cálculo que contiene metadatos sobre el proceso (¡¡no me preguntes por qué !! y NO, NO PUEDO CAMBIARLO !!)
El problema es que esta hoja de cálculo se almacena en un campo de IMAGEN en un SQL Server 2005 (dentro de una base de datos establecida con compatibilidad SQL 2000).
Esta tabla tiene en la actualidad 22K + líneas e incluso una simple consulta como esta:
SELECT TOP 100 *
FROM OFFENDING_TABLE
tarda 30 segundos para recuperar los datos en el Analizador de consultas.
Estoy pensando en actualizar la compatibilidad con SQL 2005 (una vez que me informaron que la aplicación puede manejarlo).
Lo segundo que estoy pensando es cambiar el tipo de datos de la columna a varbinary(max)
pero no sé si esto afectará la aplicación.
Otra cosa que estoy considerando es usar sp_tableoption
para establecer el large value types out of row
a 1
ya que es actualmente 0
, pero no tengo ninguna información si hacer esto mejorará el rendimiento.
¿Alguien sabe cómo mejorar el rendimiento en ese escenario?
Editado para aclarar
Mi problema es que no tengo ningún control sobre lo que la aplicación solicita al servidor SQL Server, y lo hice alguna reflexión sobre ella (la aplicación es una página web .NET 1.1) y utiliza el campo ofensivo para algunas cosas internas que no tengo idea de qué se trata.
Necesito mejorar el rendimiento general de esta tabla.