Connexion à une instance nommée

SQL Server permet l’installation de plusieurs moteurs de bases de données sur un même système d’exploitation. Le terme consacré pour décrire ces moteurs installés est “instance”.

Cet article a pour objet de voir les bonnes pratiques pour se connecter à une instance SQL Server dans un contexte d’entreprise, et plus précisément dans le cas où l’on a un pare-feu à traverser. Continuer la lecture

Copie de logins

Récemment, j’ai eu besoin de transférer les logins depuis une instance SQL vers une autre.

Je suis donc naturellement tombé sur la page suivante sur le site du support Microsoft : Comment faire pour transférer des noms d’accès et des mots de passe entre instances de SQL Server

Mais le script fourni par Microsoft omet un point très important. Continuer la lecture

sp_cycle_errorlog (anciennement DBCC ERRORLOG)

Tout administrateur système Windows a déjà eu l’occasion de pester devant une durée de chargement excessive du journal d’événement Windows (par exemple la rubrique Application ou Système) parce que la machine était en place depuis pas mal de temps et que l’on avait depuis le temps cumulé un nombre d’événements assez important. La limite est bien entendue paramétrable, mais il ne faut pas couper trop court, car on risquerait alors de supprimer des informations encore potentiellement nécessaires.

Côté SQL Server, nous avons aussi une journalisation d’événements. Celle-ci bascule sur un nouveau sous-ensemble à chaque redémarrage d’instance. Mais il n’est pas obligatoire de redémarrer le moteur pour repartir sur un nouveau jeu d’enregistrements, et nous allons voir que nous pouvons éviter les journaux trop longs même sur des instances restant actives très longtemps. Continuer la lecture

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

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

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