janvier
2011
Pour écconomiser de l’espace de stockage des données des tables, on est souvent confronté au choix du type CHAR ou VARCHAR. Pour une colonne dont la longueur est fixe, il n’y a pas de doute sur le choix du type de colonne : c’est CHAR qu’il faut utiliser. Mais lorsque la longueur de la colonne est variable, il faut se poser la question du choix du type de colonne. Ce n’est pas parce que les […]
janvier
2011
D’habitude pour faire une estimation de la taille d’une base de données j’utilise l’outil POWER AMC. En fonction de différents paramètres : nombre de lignes dans chaque table, index, … POWER AMC indique une estimation de la taille de la base. Mais la méthode de calcul n’est pas affichée par POWER AMC … En fouillant sur le net, je suis tombé sur une procédure écrite par Tim Laqua pour faire une estimation de la taille […]
décembre
2010
Ces procédures stockées permettent d’afficher les clés étrangères (FK) relatives à une clé primaire (PK). Ces procédures stockées permettent de présenter les liens entre tables sans utiliser le diagramme designer. Une aide donc pour identifier rapidement les colonnes à utiliser dans les jointures entre tables.
décembre
2010
La théorie relationnelle EXIGE que chaque table DOIT avoir une clé primaire. Mais les éditeurs de SGBDR sont permissifs vis à vis de cette recommandation. Conséquence on voit dans des bases de données des tables contenant des milliers de lignes sans clé primaire (PK) ! Le constat est décevant …
novembre
2010
Le premier contrôle à effectuer en cas de lenteur d’une requête est l’analyse des indexes. Cette analyse oblige à se poser les questions suivantes : • 1. est ce que les bons indexes sont créés ? • 2. si oui est ce que la requête profite bien des l’index crées ? La réponse à ces questions nécessite une bonne connaissance de comment fonctionne l’optimiseur du SGBD. Créer les bons indexes ne veut pas dire créer […]
octobre
2010
Il arrive souvent que le modèle de données d’une base SQL SERVER ne prévoit pas la suppression en cascade ou la mise à jour en cascade entre les tables PARENT-ENFANT. Pour effectuer donc un DELETE ou un UPDATE dans la table PARENT il faut d’abord faire en amont la même opération dans toutes les tables ENFANTS. Comment faire donc un DELETE ou UPDATE en cascade sans toucher au modèle de données et sans trigger ?
août
2010
Depuis un certain temps je fais tout pour éviter d’utiliser les curseurs de façon explicite. la solution que j’ai trouvée et qui marche presque à tous les coups est la suivante : 1) Création de table temporaire (#Tmptable) 2) Remplissage de la table temporaire 3) WHILE EXISTS ( SELECT … FROM #Tmptable) BEGIN SET @ligneAtraiter = SELECT TOP 1 … FROM #Tmptable instrustion à exécuter avec @ligneAtraiter DROP de la ligne traitée dans la table […]
juin
2010
Comment monitorer les principaux services SQL de tous les serveurs de base de données du réseau ?
juin
2010
Comment auditer un fichier backup sous SQL 2000 ? Voici un script T-SQL pour obtenir les informations suivantes : –>Nom du compte utilisateur sous lequel le backup est fait –>Nom du serveur sur lequel le backup est fait –>Nom de la base de données sauvegardée –>Version du logiciel qui a créé la sauvegarde –>Version de la base de donnée sauvegardée –>Niveau de compatibilité de la sauvegarde –>Collation utilisée par la base de données backupée –>le […]
juin
2010
Pour des raisons X ou Y on peut être amener à modifier la colonne auto-incrément d’une table. Comment donc changer par exemple la colonne ID(1,1) pour avoir ID(2,2) ?. On peut penser qu’un ALTER TABLE suffit à faire la modification. Mais Non…