Insérer une image dans SQL Server
Une petite question qui m’a été posée il y a quelques temps : comment stocker une image (ou tout autre document) dans une colonne de type varbinary sous SQL Server ? (Lire la suite…)
Index couvrants
Très souvent, lorsqu’une requête donnée traîne un peu, une solution pour l’optimiser consiste à s’attacher à positionner des index adéquats. Un élément important dans le design des index réside dans la notion d’index couvrants. (Lire la suite…)
Purge massive de données
Dans l’article Découpage de gros traitements, j’évoquais le fait de traiter par paquets une insertion massive de données.
Mais sans aller chercher si compliqué, il est, de manière beaucoup plus courante, très utile de découper par lots des traitements tels que la purge de données. (Lire la suite…)
Nombre de lignes d’une table
Quelle idée d’écrire un article pour expliquer comment compter le nombre d’enregistrements dans une table ? Tout le monde sait répondre !
SELECT COUNT(*) FROM MaTableEt bien non, justement ! Il y a bien plus performant … (Lire la suite…)
Taille des transactions
J’ai tendance à répéter à l’envi que les opérations dans SQL Server doivent être effectuées au maximum en ensembliste plutôt qu’en unitaire. Cela concerne aussi les transactions qui, à partir du moment où cela répond au fonctionnel, ne doivent pas être d’une granularité trop fine.
Tout comme il vaut mieux modifier une fois mille enregistrements que mille fois un enregistrement, il vaut mieux avoir une transaction de mille instructions que mille transactions de une instruction. (Lire la suite…)
Mauvais plan d’exécution ?
Aujourd’hui, je vais aborder une situation assez couramment rencontrée : les plans d’exécution de procédures qui semblent partir de travers. Votre client vous appelle parce que ses traitements semblent être au ralenti et pourtant, lorsque vous récupérez sur votre serveur de tests une copie de sa base de données, tout semble fonctionner à merveille… (Lire la suite…)
Un index pour l’occasion
Lorsque l’on consulte les différentes vues système d’une instance SQL, et plus particulièrement la vue sys.dm_db_missing_index_details, il peut arriver de trouver des index qui sont très utiles, mais seulement pour des actions « rares ».
Dans ce cas, le fait de créer un index permanent n’est peut-être pas la meilleure méthode, et il est à envisager de créer un index juste pour l’occasion. (Lire la suite…)
Ajout de colonne sur SQL Server 2012
SQL Server 2012 présente de nombreuses nouvelles fonctionnalités. En ce qui concerne les performances et la haute disponibilité, voici une amélioration assez intéressante : l’ajout de colonnes NOT NULL en tant qu’opération en ligne. Elle peut, dans certains cas, rendre quasiment instantanné l’ajout de nouvelles colonnes même si la table contient un très grand nombre d’enregistrements. (Lire la suite…)
Backup COPY_ONLY
Il est assez souvent négligé par les administrateurs de systèmes SQL Server que le fait de donner un peu trop de droits aux gestionnaires applicatifs de bases applicatives peut être néfaste à la gestion de la sécurité des données. Notamment, le fait de distribuer à tout va les droits de sauvegardes de bases de données peut au final nuire au plan de sauvegarde global, et même le mettre totalement à plat. (Lire la suite…)
Différence entre TOP et TABLESAMPLE
Voici un petit papier pour comparer les mots-clés TOP et TABLESAMPLE, le TOP étant dans les faits trop souvent utilisé là où l’on devrait utiliser TABLESAMPLE…
Il s’agira ici de comparer à la fois la syntaxe d’utilisation, les effets et aussi les performances. (Lire la suite…)
