Une macro Excel pour dépouiller les statistiques IO

L’option de session SET STATISTICS IO ON permet de révéler la quantité d’activité générée sur les disques par une requête.
Comme je dépouille assez souvent le résultat qui s’affiche dans la console de SQL Server Management Studio, j’en suis venu à écrire une macro qui fait ce travail pour moi en un clin d’œil ;)

Lire la suite

Trouver le premier et le dernier jour de la semaine, du mois, du trimestre, et autre calculs

Beaucoup de participants au forum SQL Server se compliquent la vie avec des calculs bizarres, à trouver le premier ou dernier jour d’un index temporel, comme celui d’une semaine, d’un mois, ou d’un trimestre.

Ces calculs se font souvent à base d’extractions de sous-chaînes après avoir converti une date en varchar(n), et on aboutit donc à des choses abominables.

Voici donc une série de calculs de valeurs, uniquement à base de fonctions de date …
Oui, les dates se manipulent avec des fonctions de date, et non pas avec des fonctions de chaîne !

J’en profite au passage pour rappeler mon billet sur le choix des types de données

Lire la suite

Générer le script de mise à jour des types de données de colonnes dont le type est déprécié

Voici plusieurs scripts qui permettent d’automatiser le changement de types de données dépréciés text, ntext et image depuis SQL Server 2005, qui les a respectivement remplacés par varchar(max), nvarchar(max), et varbinary(max), et a rendu les valeurs stockées sous de tels types bien plus malléables (utilisations de fonctions de chaîne notamment)
Lire la suite

Retrouver le dossier par défaut des sauvegardes des bases de données sous SQL Server 2005 et suivants

Voyons comment retrouver le dossier dans lequel sont stockés par défaut les sauvegardes de vos bases de données de deux façons :

– Avec SQL Server Management Studio
РAvec proc̩dure stock̩e ̩tendue non document̩e xp_instance_regread
Lire la suite

Utiliser le séparateur « pipe » avec l’utilitaire BCP

Si l’on tente d’exécuter l’instruction suivante :

bcp « SELECT query_plan FROM ELSUKET.dbo.unTable » queryout « C:\toto.txt » -c -t| -T -S ELSUKET

dans une fenêtre d’invite de commandes ou bien à l’aide de la procédure stockée xp_cmdshell, nous obtenons l’erreur :

‘-T’ is not recognized as an internal or external command, operable program or batch file.

Comment faire pour éviter cela ? C’est très simple : Lire la suite

Configurer les protocoles de connexion réseau à SQL Server : l’utilitaire SQL Server Configuration Manager

SQL Server 2005 a introduit l’outil SQL Server Configuration Manager, qui permet de gérer les fonctionnalités des instances SQL Server hébergées par un serveur, mais aussi la configuration du réseau.
Ces problèmes sont souvent abordés sur le forum, et sont souvent résolus par une description des manipulations à effectuer sous cet utilitaire.

Les voici ici …

Lire la suite

Compresser tous les backups sans modifier du code ou un plan de maintnenance avec SQL Server 2008

SQL Server 2008 a introduit la compression des sauvegardes, qui, bien que consommatrice de CPU, permet de gagner en temps d’exécution et en espace disque.
Si l’on a porté une procédure stockée de gestion des sauvegardes ou un plan de maintenance, on peut s’éviter de modifier leur code pour les compression à l’aide d’une option de serveur : backup compression default

Il suffit pour cela d’exécuter :

1
2
3
4
EXEC sp_configure 'backup compression default', '1'
GO
RECONFIGURE
GO

pour activer la compression de toutes les sauvegardes.

Et bon backups ;)

ElSuket

Administrer les services SQL Server à distance

Jour férié, je jette un Å“il à mes e-mails car l’entreprise dans laquelle je travaille a plusieurs sites de développement à travers le monde et qu’aujourd’hui n’est donc pas férié pour tout le monde.
Un développeur me précise qu’il ne peut plus accéder à l’instance SQL Server Analysis Services.
Je m’empresse donc d’établir une connexion VPN pour prendre le contrôle du serveur et voir ce qui s’y passe, et là surprise : erreur de protocole.
Je me penche donc vers la console de services sur ma machine pour voir si je peux gérer les services du serveur à distance, et la réponse est … oui !
Voyons comment faire :
Lire la suite