[Utilitaires] Importer et exporter les paramètres de surface d’exposition : l’utilitaire SAC

Il peut être intéressant entre deux installations de SQL Server de se resservir des mêmes paramètres de surface d’exposition, plutôt que de passer un moment dans l’interface graphique proposée.
Heureusement, l’utilitaire en ligne de commande SAC permet d’exporter et d’importer ces paramètres très simplement.
Lire la suite

[Snippets] Génération de nombres pseudo-aléatoires

Un participant au forum SQL Server de ce site a demandé comment on peut générer 10000 nombres entiers positifs aléatoires ne contenant pas de zéros, par une requête T-SQL.
Je connaissais la fonction RAND(), qui suffit dans bien des situations car on n’a pas souvent besoin de générer une série de nombres aléatoires, pourtant celle-ci ne s’est pas prêtée au jeu …

Lire la suite

Ecriture ensembliste de triggers

Lors de mes participations au forum SQL Server de ce site, j’ai plusieurs fois vu des participants montrer leur trigger, qui spécifie du code non ensembliste, c’est-à-dire :

– Un traitement ligne à ligne, avec une boucle WHILE, ou un curseur,
– Une affectation de variables par sélection des tables virtuelles INSERTED et DELETED.

Dans le premier cas, il faut savoir que les SGBDR modernes sont conçus pour traiter des ensembles de données, et non pas pour traiter des lignes une par une, à la façon d’un curseur. Rappelons que les curseurs datent de COBOL (si vous vous rappelez des fichiers séquentiels indexés et de la rigidité de ce langage, cela doit vous dégoûter d’en écrire).
Par conséquent, tout traitement qui n’est pas ensembliste sera forcément plus long que celui qui l’est.

Dans le second cas, c’est en fait la première ligne mise à jour qui subira le traitement du trigger, parce qu’une variable ne peut être affectée au plus que par une seule valeur. Lire la suite

Purge du cache de plans

Il est possible qu’un jour vous trouviez dans les journaux de SQL Server le libellé suivant :

SQL Server has encountered n occurrence(s) of cachestore flush for the (partie du cache de plans) cachestore due to some database maintenance or reconfigure operations »

Ce message n’apparaît qu’à partir du SP2 de SQL Server 2005, et il est écrit par intervalles de 5 minutes.
La purge du cache de plans peut se produire dans les cas suivants :
Lire la suite

Recherche d’indexes manquants sous SQL Server 2005

Une nouvelle fonctionnalité intéressante, introduite avec SQL Server 2005, est la recherche d’indexes manquants.
Elle permet, de façon très simple, de trouver les indexes manquants qui pourraient simplifier le travail
du moteur de base de données s’ils étaient posés sur des tables de base ou des vues indexées.
Néanmoins, cette fonctionnalité comporte quelques limitations, qui doivent être prise en compte avant qu’on
ait décidé de créer l’index conseillé par SQL Server.
Comme vous le verrez, plusieurs sujets sont connexes à cet article, mais nous ne les aborderons pas ici.
Ils seront l’objet de prochains articles.

Lire la suite

Gérer des couleurs en base de données

Il peut vite devenir difficile de gérer de façon uniforme les couleurs pour plusieurs applications accédant à une base de données :

– s’il s’agit d’une application web, les couleurs s’affichent sur 6 caractères alphanumériques de la base hexadécimale,
– s’il s’agit d’une application lourde, elle peut interpréter les couleurs comme un entier qui est la somme RVB, ou bien sous forme hexadécimale.

Voyons comment gérer cela simplement …

Lire la suite