« … une requête était restée ouverte dans la mémoire tampon d’une des bases de données. Cette transaction ne s’étant pas refermée, la mémoire tampon a stocké des Ârequêtes jusqu’à saturation, au lieu de basculer vers une base de données de secours. » Ce sont les termes de Stéphane Richard, concluant l’origine de la gigantesque panne survenue sur le réseau des téléphones mobiles d’orange le 6 juillet 2012…
Lire la suite
Générer un script de création des comptes de connexion
Lors de la restauration d’une base sur un autre serveur, les comptes de connexion ne sont pas recrées sauf si vous restaurez la base master sur ce même serveur. Ce outil vous permet de générer un script SQL de recréation des comptes de connexion en vu de les régénérer sur le serveur de destination de la restauration.
Lire la suite
Pourquoi la clause ORDER BY… est-elle interdite au sein d’une requête ?
Certains développeurs pensent naïvement pouvoir mettre une clause de tri ORDER BY un peu partout dans une requête. Il n’est est rien. Une clause ORDER BY ne peut figurer que comme dernière lignes d’une requête de type SELECT. Même si vous pouvez parfois l’écrire à l’intérieur de certaines requêtes (certains SGBDR ne râlant même pas sur cette inadmissible faute) elle sera au mieux ignorée et au pire peut donner des résultats incohérent… Mais pourquoi ?
Lire la suite
Génération aléatoire de mots et phrases en SQL
Deux petites fonctions MS SQL Server pour créer des mots et phrases en « bolobolo » c’est à dire avec une vraisemblance importante par rapport au français.
Lire la suite
MySQL ? Un SGBDR poudre aux yeux !
Une critique objective mais sans pitié pour MySQL…Voici une liste non exhaustive des points pour lesquels je considère que MySQL est un ersatz de SGBDR C/S et qui peuvent poser problème, tant au niveau des performances des applications que de la qualité des données (certains résultats de requête sont mathématiquement faux). En fait, dès sa conception reposant directement sur l’OS, MySQL a été mal conçu. Parmi les principaux défauts de mySQL notons : la pauvreté de la gestion de la concurrence (en pratique les performances de MySQL chutent à plus de 5 utilisateurs en concurrence, alors que tous les autres SGBDR acceptent des centaines d’utilisateurs en parallèle sans broncher), la gestion plus que pauvre des transactions, des sauvegardes impossible à chaud, le manque de fonctionnalité des contraintes SQL, un SQL hors norme et très incomplet (près de 20 ans de retard – certaines requêtes étant infaisables avec MySQL), et pour couronner le tout, la destruction de certaines de vos données ! … bref un ensemble de problèmes édifiants pour un SGBDR qui se vante d’être le meilleur sans qu’aucun benchmark n’ai jamais étayé cette affirmation !
Lire la suite
Quelles sont les colonnes toujours vide dans ma base ?
Voici un petit script SQL qui donne une table contenant toutes les colonnes vide de toutes les tables de la base.
Génération de chaines de caractères aléatoires
Voici deux fonction pour générer, la première, une châine de caractères aléatoire, l’autre une table de chaînes.
Lire la suite
Filtre conditionnel sur le WHERE avec requête paramétrée… Comment ignorer en cas de NULL ?
Voici un cas de filtrage WHERE bien courant pour une requête paramétrée. Comment s’affranchir du filtre si le paramètre est NULL ? Soit l’on veut filtrer une colonne si le paramètre est valué, soit l’on veut toutes les lignes. Un bel exemple d’utilisation de COALESCE et de CASE.
Lire la suite
MERCI de respecter les normes !
Je suis sidéré de voir de plus en plus de technocrétins (le mot n’est pas de moi…) prôner de faire sauter les normes et de vivre l’informatique dans l’anarchie. Voici une explication de l’extrême danger que représente le non respect des normes en informatique… Et je suis d’autant plus choqué de cette imbécilité que ceux qui exhorte à casser les normes se veulent des dignes représentant du logiciel libre ! Or il n’y a pas plus simple que l’anarchie pour devenir dépendant, donc enfermé et finalement prisonnier… Apprendre à vivre en société ne semble pas évident pour certains !
Lire la suite
Composition logique d’un index
Voici une petite requête (récursive) pour connaître la définition logique de tous les index d’une base de données, pour MS SQL Server 2008 et suivant. Ille récupère la composition de la clé d’index ainsi que les éventuelles clauses INCLUDE et WHERE.
Lire la suite