Sto avendo un problema di prestazioni molto particolare al lavoro!Come migliorare le prestazioni nella tabella di SQL Server con i campi immagine?
Nel sistema che stiamo usando c'è una tabella che contiene informazioni sul processo attuale del flusso di lavoro. Uno dei campi contiene un foglio di calcolo che contiene metadati sul processo (non chiedermi perché !! e NO NON POSSO CAMBIARE !!)
Il problema è che questo foglio di calcolo è memorizzato in un campo IMMAGINE in un SQL Server 2005 (all'interno di un set di database con compatibilità SQL 2000).
Questa tabella è attualmente 22K + linee e anche una semplice query come questa:
SELECT TOP 100 *
FROM OFFENDING_TABLE
richiede 30 secondi per recuperare i dati in Query Analyzer.
Sto pensando di aggiornare la compatibilità con SQL 2005 (una volta che mi è stato comunicato che l'app può gestirlo).
La seconda cosa che sto pensando è di modificare il tipo di dati della colonna su varbinary(max)
ma non so se questo influirà sull'applicazione.
Un'altra cosa che sto considerando è quello di utilizzare sp_tableoption
per impostare il large value types out of row
-1
come è attualmente 0
, ma non ho informazioni se questa operazione migliorerà le prestazioni.
Qualcuno sa come migliorare le prestazioni in tale scenario?
A cura di chiarire
Il mio problema è che non ho alcun controllo su ciò che l'applicazione chiede di SQL Server, e ho fatto qualche riflessione su di essa (l'applicazione è un sito web .NET 1.1) e usa il campo incriminato per alcune cose interne che non ho idea di cosa sia.
Ho bisogno di migliorare le prestazioni generali di questa tabella.