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 →

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 →