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. Continuer la lecture

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. Continuer la lecture

Mise à jour de définition de code : risques du DROP / CREATE

Pour mettre à jour une procédure stockée, une vue ou encore d’autres objets SQL Server disposant d’une définition sous forme T-SQL, une solution classique consiste à supprimer la définition actuelle de l’objet (DROP) et à recréer ensuite l’objet avec sa définition mise à jour. C’est d’ailleurs ce type de code que construit SQL Server Management Studio (SSMS).

Mais il est en fait parfois plus judicieux d’utiliser une méthode implémentant une mise à jour (commande ALTER), qui peut présenter des avantages non négligeables. Continuer la lecture

Doublons d’index

Sous SQL Server, les index permettent d’optimiser l’accès aux données, notamment dans le contexte des lectures.

Néanmoins, il ne faut pas en abuser, car il sont maintenus à jour en mode synchrone lors des opérations de modification de données (ajout / suppression / modification). Il convient notament de vérifier qu’il n’y a pas de doublons d’index ce qui comprend notamment les cas d’index à plusieurs colonnes dont la ou les premières constituent déjà la définition d’un autre index. Continuer la lecture

Index manquants pour les clés étrangères

Dans la série des petites scripts utiles, voici une instruction simple permettant d’identifier les contraintes de clés étrangères pour lesquelles il manque un index dans la table parente. Un tel manque d’index peut parfois provoquer des temps de réponse extrêmement important pour de simples suppressions unitaires d’enregistrements dans une table de référence. Continuer la lecture

Générer un script de reconstruction de clés primaires

Dans le même contexte que la reconstruction d’indexes mentionnée ici, voici le script complémentaire lié à la reconstruction de clés primaires. Etant donné qu’il n’existe pas de syntaxe permettant que créer une contrainte de clé étrangère en mode “remplacement”, je présenterai ci-dessous un script générant la suppression des contraintes de clé primaire, et un script permettant de les régénérer.

Continuer la lecture

Générer un script de reconstruction d’index

Certaines opérations sur les index ne peuvent pas être réalisées via la commande ALTER. Ainsi, par exemple, la modification de données telles que le taux de remplissage (Fillfactor) ou encore les paramétrages d’autorisation de verrous ligne / page, nécessite le passage par la commande de création CREATE INDEX.

Le problème est qu’il est nécessaire de générer un script de reconstruction des index, en y apportant éventuellement quelques modifications pour notre besoin propre (modifier le taux de remplissage, …). Continuer la lecture