décembre
2010
SQL Live Monitor est une application .NET qui permet : –> le monitoring temps réel d’une instance SQL Qerver –> la collecte des indicateurs de performances –> la génération de fichiers CSV ou BLG (pour une analyse offline des performances dans l’outil PAL par exemple) –> l’obtention des requêtes les plus consommatrices de ressources (CPU,IO,Mémoire) –> l’obtention des Locks –> ….
décembre
2010
Voici un extrait des recommandations de Microsoft pour s’orienter vers le modèle relationnel ou le modèle XML : Si les données sont très structurées avec un schéma connu, le modèle relationnel est susceptible de fonctionner le mieux pour le stockage des données. Microsoft SQL Server offre la fonctionnalité et les outils nécessaires dont vous pouvez avoir besoin. En revanche, si la structure est flexible (semi-structurée ou non structurée) ou inconnue, vous devez sérieusement envisager la […]
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 ?
octobre
2010
Pour répondre rapidement aux instructions, SQL SERVER dispose d’un pool de mémoire pour stocker les plans d’exécution et les données. La part du pool de mémoire utilisée pour stocker les plans d’exécution est appelée le cache de procédures. Lorsqu’une instruction SQL est lancé, le moteur relationnel parcourt d’abord le cache de procédures pour voir s’il existe un plan d’exécution pour la même instruction, afin de réutiliser ce plan. Ceci évite donc au moteur de mobiliser […]
octobre
2010
On ne le dira jamais assez : une mauvaise écriture de requête SQL et surtout la méconnaissance du fonctionnement des SGBD peuvent conduire à une catastrophe ! tenez, une requête du genre SELECT * FROM T_TEST WHERE id LIKE @id peut mettre à genou votre serveur. Voici une petite démo. Cette démo est inspirée d’un cas concret de requête lancée par une application commerciale sur un serveur SQL de production.
septembre
2010
Monitorer les jobs d’une instance SQL Server (2005 ou 2008) à l’aide du T-SQL
septembre
2010
Peut-on créer un index sur une colonne non déterministe ? Qu’est ce qu’une colonne déterministe ou non ? comment les identifier ?
septembre
2010
Quels sont les conditions pour créer un index sur une colonne calculée ou une vue ? Voici un scénario pour mettre en évidence les pré-réquis.
septembre
2010
Quand on parle de statistiques pour un serveur de base de données, il faut distinguer : 1 – les statistiques d’activités du SGBD : les indicateurs (compteurs) de performances collectés par le SGBD 2 – les statistiques d’optimisation de requêtes; ces statistiques sont créées/utilisées par l’optimiseur de requête pour estimer le nombre de lignes (cardinalité) renvoyées par une requête. Ces estimations de cardinalité permettent à l’optimiseur de requête de créer un plan de requête de […]