Je suis actuellement confronté à des optimisations de performance/consommation de mémoire de notre application. Une des tâches à effectuer est de remplacer tous les blobs dans la table qui correspondent à des tableaux vides avec des valeurs nulles; Cela devrait réduire la taille de la base de données, la consommation de mémoire et accélérer la charge. Voici la définition de la table:Détérioration des performances de SQL Server
CREATE TABLE [dbo].[SampleTable](
[id] [bigint] NOT NULL,
[creationTime] [datetime] NULL,
[binaryData] [image] NULL,
[isEvent] [bit] NULL,
[lastSavedTime] [datetime] NULL,
CONSTRAINT [PK_SampleTable] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Je mis à jour la table et remplacé les valeurs de champ d'image (BinaryData) avec des valeurs NULL, le cas échéant (données correspondant à vider les tableaux dans l'application). Maintenant, j'observe la détérioration des performances lors de l'exécution de trivial SELECT * FROM SampleTable.
À l'origine, ces champs qui avaient été mis à jour avaient une longueur = 512 octets, mais ils ne savaient pas si cela importait.
Des idées pour lesquelles la sélection de blobs contenant des valeurs NULL prend plus de temps que la sélection de vraies données binaires même si les données sont identiques pour des lignes différentes?
Etes-vous sûr que vous comparez des pommes avec des pommes? Quelles sont les deux commandes SQL que vous avez utilisées? Les avez-vous dirigés depuis le même endroit/environnement? SSMS? –
Désolé de ne pas être clair: je cours la même requête 'Select * from Table' dans les deux cas. J'ai vérifié la performance de deux manières différentes: 1. À partir de Management studio 2. Exécutez l'application qui s'est connectée à db et exécutez la requête et inspecté les résultats dans le profileur SQL. Les résultats étaient similaires dans les deux cas. – Daniel
Qu'est-ce que type '[dbo]. [Image]'? Est-ce un type de données CLR personnalisé? –