La « scalabilité » (en français l’extensibilité voire « croissance » pour certains auteurs) d’un serveur est sa propension à pourvoir augmenter les ressources physiques de l’ensemble du système de façon à faire face à une charge accrue ou bien permettre une répartition de charge. Par exemple en matière de serveur web, ajouter des machines en parallèle permet rapidement et à peu de frais d’augmenter la surface d’attaque globale du système. Il n’en va pas de même en matière de serveur de bases de données, du fait des données ! Petites explications…
Lire la suite
Comment réduire tous les journaux de transaction et gagner de la place
Voici un script SQL pour réduire tous les journaux de transactions (appelés à tort journaux de log…) des bases de données de production d’une instance MS SQL Server…
Une procédure pour savoir si une table contient un LOB
Cette procédure renvoie 0 ou 1 si la table contient un LOB, par exemple TEXT, NTEXT, IMAGE, VARCHAR(max), NVARCHAR(max), VARBINARY(max), XML, GEOMETRY, GEOGRAPHY…
Lire la suite
Agrégation d’intervalles en SQL : en pratique (benchmark MySQL, PostGreSQL et MS SQL Server)
Suite au précédent article consacré à ce sujet, je me suis penché sur différentes solutions publiée sur le net et leurs coûts d’exécution. Voici une étude pratique avec un test de comparaisons des différentes requêtes sur les différents SGBDR, que sont MS SQL Server, MySQL et PostGreSQL. Cette étude constitue un excellent benchmark de SGBDR pour des requêtes moyennement difficiles (elles ne portent jamais que sur une seule table !).
Lire la suite
Paramétrage des constantes SEVERITY et STATE dans RAISERROR et gestion des messages d’erreurs de SQL Server
Voici quelques informations sur le paramétrage de SEVERITY et STATE pour le commande RAISERROR
Lire la suite
Deux petites fonctions de manipulations de chaines binaires
Voici deux petites fonction de manipulations de chaines binaires : l’une transforme en chaine de bits un décimal et l’autre compte le nombre de 1 d’une chaine binaire.
Lire la suite
Créer une procédure exécutable de toutes les bases et dans le contexte de la base courante
Voici comment écrire une procédure stockée qui pourra être appelée depuis n’importe quelle base de données et s’exécutera dans le contexte de la base de données appelante. SQL Server les appellent « procédures marquées système », mais je préfère le terme de procédure génériques.
Lire la suite
Contraintes d’unicité à la norme SQL ISO (acceptant le multi null)
Depuis des lustres, SQL Server ne permets toujours pas de réaliser des contraintes d’unicité respectant la norme ISO. En effet, la norme SQL impose qu’une contrainte d’unicité porte sur les valeurs exprimées. Ce qui signifie qu’une multiplicité des marqueurs NULLs est permise dans une colonne UNIQUE. Voir :
http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.2.2
Indexer… oui mais quoi ?
Qu’est ce qu’un index ? Comment en poser ? Quoi indexer ? Autant de questions qui appellent des réponses que traite cet article…
Lire la suite
Constituer un jeu d’essais rapidement en SQL
Voici en quelques requêtes un petit exemple pour remplier rapidement des tables de jeu d’essais à l’aide de jointures peu orthodoxes et de calculs aléatoires
Lire la suite