Reprendre le contrôle d’une instance SQL Server lorsqu’on a perdu le mot de passe de la connexion sa ou lorsque tous les DBAs en ont perdu l’accès

Comment faire lorsqu’on a perdu le mot de passe de la connexion sa pour se connecter à l’instance ?
Ou comment est-il possible de prendre le contrôle d’une instance SQL Server installée par une personne avec son propre compte, et qui a quitté l’entreprise depuis une durée plus grande que celle de l’expiration des mots de passe ?
Lire la suite

Dedicated administrator connections are not supported via SSMS as it establishes multiple connections by design : que faire ?

Lorsqu’on tente d’ouvrir une connexion d’administrateur dédiée (DAC dans le jargon) à partir de l’explorateur d’objets de SQL Server Management Studio (SSMS), on obtient l’erreur suivante :
Lire la suite

Vous êtes sûr d’avoir les BACKUP avec CHECKSUM parce que vous utilisez l’option COMPRESSION ? Vérifiez une seconde fois !

Après avoir vu comment compresser toutes les sauvegardes de base de données dès SQL Server 2008, il est intéressant de trouver comment activer l’option CHECKSUM de l’instruction BACKUP.

A ce sujet, la documentation indique :

Indique que l’opération de sauvegarde vérifie dans chaque page les informations de somme de contrôle et de page endommagée, si elles sont activées et disponibles, et génère une somme de contrôle pour l’ensemble de la sauvegarde. Ceci est le comportement par défaut pour une sauvegarde compressée.

Vérifions donc si cela est vrai : nous allons créer une base de données de test, et nous allons corrompre une de ses pages afin de vérifier le comportement de la sauvegarde. En effet, l’option CHECKSUM permet de détecter la corruption de données au moment de la sauvegarde. Cela permet en plus de ne pas se retrouver dans l’inconfortable situation de devoir restaurer une base de données à partir d’un fichier de sauvegarde corrompu.
Lire la suite

La clause VALUES n’est-elle réservée qu’à l’ordre INSERT ?

Si je pose la question, c’est que la réponse est … non, et ce depuis SQL Server 2008 !

En effet l’utilisation la plus commune de la clause VALUES se fait lors de la définition d’un ordre INSERT, et permettait jusqu’à SQL Server 2005 inclus d’insérer seulement une ligne dans une table.

Cela a changé lors de la sortie de SQL Server 2008, qui permet de réaliser un INSERT d’au plus 1000 lignes dont les valeurs sont codées « en dur » dans un script. Voyons les autres utilisations possible de cette clause …
Lire la suite

Devart : SQL Complete et sql-format.com

Devart est un éditeur Ukrainien de logiciels tournant autour des moteurs de base de données relationnelles SQL. L’éditeur vient de publier le site sql-format.com, qui permet comme son nom l’indique de formater du code T-SQL, avec un très grand nombre d’options disponibles, parmi lesquelles :

– Paramétrage de la casse et de l’indentation
– La coloration syntaxique
– La vérification de la syntaxe : les erreurs trouvées sont soulignées
– La possibilité de formater un fichier de script

Pour me retrouver souvent avec du code qui a été écrit avant que je mette en place un standard de codage, ce type d’outil me fait gagner énormément de temps.
Lire la suite

Les posters des permissions pour SQL Server 2008 R2, 2012 et Azure

Si l’on est un peu perdu dans les privilèges que l’on peut octroyer à des utilisateurs ou des connexions (logins), ou que l’on souhaite tout simplement explorer les possibilités offertes par les entités de sécurité, on peut télécharger des posters qui les présentent sous forme de groupes : serveur, base de données, ou pour chaque fonctionnalité du moteur de base de données.

Bon octroi de privilèges !

Mise au point à propos du compteur de performance Page Life Expectancy

Parmi les compteurs de performance qu’expose SQL Server, il en existe quelques-uns qui ne laissent aucun doute sur les performances courantes d’une instance SQL Server. Page Life Expectancy est l’un d’entre eux, puisqu’il nous renseigne sur la durée de vie moyenne d’une page de données en RAM, en secondes.

L’ensemble des opérations de manipulation de données se faisant exclusivement en mémoire par tout SGBDR digne de ce nom, on comprend aisément que plus la valeur exposée par ce compteur est élevée, plus les performances de l’instance sont correctes. En effet, comme un accès en RAM est en pratique au moins 1000 fois plus rapide qu’un accès à des disques mécaniques, plus on peut traiter de données en RAM, moins on est exposé à des problèmes de performances.

Cela étant, les serveurs physiques actuels disposant de plusieurs sockets pour accueillir leurs CPUs, ils sont tous une implémentation de NUMA (Non-Uniform Memory Access), dans lequel chaque processeur dispose d’un bus mémoire dédié. On appelle nÅ“ud NUMA l’ensemble composé par l’espace mémoire et le processeur situés sur le même bus. On désigne par nÅ“ud NUMA distant un nÅ“ud NUMA distinct de celui sur lequel la requête s’exécute.

Si par le passé on pouvait donc se référer directement à la valeur de ce compteur, puisque les serveur ne disposaient que d’un seul socket, qu’en est-il avec les architectures multi-socket ? Comment suivre cette valeur sous SQL Server ? Quelle valeur de ce compteur peut servir de seuil d’alerte ?

Je vous propose la réponse à ces questions dans cet article !
Lire la suite