Les Événements Étendus avec SQL Server 2008

Je viens de publier un article sur les Événements Étendus avec SQL Server 2008.

Je tiens à remercier Mikedavem pour ses encouragements, la relecture et l’aide à la publication.

Je remercie également toute l’équipe de Développez.com pour la mise à disposition de la plateforme de publication.

Voici le menu :

I. Architecture logique des XE, où sont décrits ce que sont les packages, les événements, les cibles, les actions, les prédicats, les « maps », et enfin les types

II. Gestion des sessions d’XE avec les vues et fonctions de gestion dynamique, qui donne le détail et les requêtes pour gérer les sessions XE

III. Quelques exemples guidés (3 au total)

IV. Le futur avec SQL Server 2012 : une brève section sur les améliorations apportées par SQL Server 2012 concernant les XE

V. Avantages et inconvénients de l’utilisation des XE : une liste de ce qu’apportent les XE, et de leurs (rares à mon avis) freins à leur adoption

Bonne Lecture à tous et merci de vos commentaires ;)

Connaître la taille du cache allouée aux bases de données et à leurs tables avec SQL Server 2005 et suivants

Voici quelques requêtes qui montrent la taille du cache de données allouée aux tables (et vues indexées) :

– pour toute l’instance SQL Server,
– par base de données
– par table (ou vue indexée) dans une base de données en particulier

Lire la suite

Gestion basée sur des stratégies : importer les stratégies de meilleures pratiques

Introduite avec SQL Server 2008, la gestion basée sur les stratégies est une fonctionnalité qui permet d’évaluer et éventuellement de mettre en conformité des instances de SQL Server.
Cela simplifie quelque peu la gestion d’un nombre important d’instances SQL Server, en permettant de s’assurer que toutes les instances, bases de données ou objets sont en conformité, et ce de façon extrêmement élémentaire.
Autre avantage : c’est compatible avec les versions antérieures de SQL Server.

Cette fonctionnalité est livrée avec 50 stratégies par défaut, qualifiées de « meilleures pratiques », mais qui ne sont pas préinstallées directement. Voici comment les importer …

Lire la suite

Trouver et changer le propriétaire d’un plan de maintenance

Bien qu’incomplets en termes de fonctionnalités par rapport à une procédure stockée qui ferait la même chose, les plans de maintenance s’avèrent très simple à développer et à déployer dans un temps court. Je pense notamment à l’impossibilité de compresser des sauvegardes sous SQL Server 2008.

Comme beaucoup de choses effectuées à l’aide des interfaces graphiques proposées par SQL Server Management Studio, les effets produits par l’exécution d’une tâche ne sont pas toujours détaillés. Le propriétaire d’un plan de maintenance n’y échappe pas et est écrasé à chaque modification du plan.
Voici donc comment le trouver, et le changer.
Lire la suite

Marquer une procédure stockée comme objet système : la procédure stockée sp_MS_marksystemobject

Il peut être intéressant de pouvoir utiliser une procédure stockée dans n’importe quel contexte de base de données (sur la même instance SQL Server).
Voyons comment faire cela à l’aide de la procédure stockée système non documentée sp_MS_marksystemobject
Lire la suite

Quelles sont les requêtes et tâches en cours d’exécution dans une instance SQL Server ?

Voici une requête basée sur les vues et fonctions de gestion dynamiques, introduites avec SQL Server 2005.

Elle permet de lister l’ensemble des requêtes actuellement en cours d’exécution dans une instance SQL Server, avec quelques statistiques et caractéristiques :

– le n° de session (SPID),
– le nombre de threads mis en place pour résoudre la requête,
– le nom du serveur,
– le nom du login,
– le pourcentage d’avancement d’une instruction,
– le nom de la base de données,
– le statut de la session,
– le temps écoulé depuis le début de l’exécution,
– le temps CPU consommé,
– le nombre de lectures et d’écritures,
– le type d’instruction,
– le nombre de transactions ouvertes par la session,
– le nombre de resultsets,
– le type d’attente,
– le temps d’attente pour ce type,
– le type d’attente précédent,
– la ressource attendue,
– le nom du programme / job qui exécute la requête,
– l’instruction SQL en cours d’exécution dans le lot,
– le lot SQL complet,
– le plan de requête,
– les hashs de requête et de plan,
– le nombre d’exécutions du plan,
– la date de génération du plan,
– l’adresse IP de la machine exécutant la requête.

Toute suggestion est la bienvenue !

Lire la suite