Les méfaits des bases de données : comment une simple transaction provoque une gigantesque panne chez Orange

« … 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

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

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