Déconnectez un utilisateur d’une base de données en 2 temps, 3 mouvements
Les développeurs, les ingénieurs en assurance qualité (QA), les non-administrateurs et autres processus SQL Server correspondants. Pour cela, vous pouvez appliquer une procédure en deux étapes toute simple :
1. Identifiez la personne connectée et la base de données qu’elle utilise.
2. Exécutez le script KickUserOut.sql.
Contenu complémentaire : VERITAS INDEPTH™ pour SQL Server |
Lire l'article
Gestion des dossiers publics dans Microsoft Exchange Server 2007
Microsoft a annoncé la mise au rebut des dossiers publics dansune organisation Exchange Server depuis un certain temps, vous avez probablement établi une relation du type « amour/haine » vis-à-vis des dossiers publics. D’une part, ceux-ci stockent beaucoup de données, dont certaines extrêmement utiles. D’autre part, Microsoft n’a pas consacré beaucoup d’efforts ces dernières années au développement d’outils pour la gestion des dossiers publics. Par conséquent, il est difficile de savoir exactement qui crée les dossiers et à quoi ils servent.
Lorsque Microsoft a lancé Exchange Server 4.0 en 1996, les dossiers publics lui ont permis de rivaliser avec une fonctionnalité de Lotus Notes permettant aux utilisateurs de répliquer des données afin de travailler avec une copie locale au lieu de se connecter sur le réseau à un serveur distant. A l’époque, ce n’était pas rien car la bande passante disponible n’était pas aussi généreuse qu’aujourd’hui. Les arguments avancés en faveur des dossiers publics étaient les suivants : permettre de créer des applications stratégiques contenant les données les plus importantes et laisser à Exchange le soin de gérer la réplication des données et la logique applicative (par ex., formulaires) dans l’organisation Exchange.
Aujourd’hui, avec les réseaux toujours plus performants et les applications de pointe telles que SharePoint, les dossiers publics ont largement perdu leur utilité. Toutefois, les administrateurs restent confrontés aux dossiers publics créés et remplis par les utilisateurs au fil des années.
Service Broker
Service Broker offre la possibilité de travailler en mode asynchrone avec une SQL Server en proposant un service de messagerie fiable entre les instances.
Migration des cubes d’Analysis Services 2000 vers Analysis Services 2005
SQL Server 2005 Analysis Services (SSAS) fournit une multitude de raisons attrayantes en faveur d’une mise à niveau à partir de SSAS 2000.
Parmi les nombreuses améliorations, SSAS 2005 offre une plus grande souplesse d’analyse en exposant plus d’attributs de dimensions sous forme d’objets d’analyse. Mais la décision d’une mise à niveau ne va pas sans défis.
Contenu complémentaire : Hors série spécial SQL Server 2005 L’analyse décisionnelle à l’honneur dans SQL Server 2005 |
Lire l'article
Scripting de schéma SQL Server 2005
Vous est-il déjà arrivé d’avoir à scripter le schéma de base de données aux fins d’archivage ? Ou votre patron vous a peut-être demandé avec insistance de mieux documenter vos bases de données afin de respecter les exigences de la loi américaine SOX (Sarbanes-Oxley), laquelle impose aux sociétés de certifier leurs comptes auprès de l’autorité de régulation des marchés boursiers américains (SEC). L’API SMO (SQL Management Options) dans SQL Server 2005 facilite la tâche consistant à scripter les tables, procédures stockées, vues, fonctions définies par l’utilisateur (UDF) et autres objets de schéma au sein de vos bases de données.
Le présent article décrit un utilitaire en mode console Windows simple, intitulé SchemaCollector. Celui-ci est écrit en C# au moyen du .NET Framework et vous permet de collecter le schéma de base de données.
Vous spécifiez une instance SQL Server chargée d’exécuter l’utilitaire par rapport à un argument de ligne de commande et le programme de collecteur de schéma génère les différents fichiers de sortie de schéma pour les tables, procédures stockées, vues, fonctions et rôles dans les sous-répertoires appropriés d’une arborescence de répertoires. Il est possible de télécharger le code source complet de l’utilitaire SchemaCollector à l’adresse http://www.itpro.fr, Club Abonnés.
Contenu complémentaire : Article : Révisez vos bases de la conception avec SQL Diagrammer Article : Fonctionnalité SQL Server 2005 facilement ignorées |
Lire l'article
Analyse décisionnelle : gagnez le gros lot
Depuis quelque temps, la majorité des grandes entreprises se tournent vers des plates-formes d’SQL Server 2005 pour essayer de gagner à la loterie puisse fort ressembler à une simple activité récréative, vous serez capable de transposer directement ces techniques à vos projets métier, comme je l’ai fait pour de nombreux scénarios de sécurité sociale. Bien souvent, les exercices amusants constituent la meilleure approche pour maîtriser des outils et technologies intimidants. En outre, autre avantage connexe, cet article pourrait tout simplement vous rendre terriblement riche.
Lire l'articleOptimisation des bases de données SQL Server Troisième partie
TROISIÈME PARTIE : LE MODÈLE DE DONNÉES
Optimiser une base de données simplement par la qualité de son modèle est une chose simple, très efficace et à coût nul... Voila qui devrait intéresser beaucoup de monde. Or c'est souvent l'inverse qui se passe : le peu d'attention apportée au modèle, le peu de précaution dans le choix des types de données, le peu de respect des formes normales sont autant d'icebergs qui ne vont pointer leurs nez qu'au moment une base de données à raison d'une table pour un fichier est un échec assuré dont beaucoup d'éditeurs de solutions informatiques ont fait les frais.
Ce nouvel article a donc pour but de vous faire comprendre ce que sont les données, les types de données et la modélisation dans la perspective d'optimisation d'une base et donc d'un serveur. Toute application avec une forte implication de SGBDR commence par une modélisation des données. La qualité d'un modèle de données, ne se fera sentir que lorsque ce dernier sera mis à l'épreuve du feu, qui dans l'univers des SGBDR consiste à farcir ses tables qu'une quantité phénoménale de données et jouer les requêtes les plus fréquentes afin d'en mesurer les temps de réponse. Or cette phase est rarement entreprise en test. Elle l'est généralement en production.
C'est là qu'est l'os, hélas1, car il est déjà trop tard ! Lorsqu'un modèle de données est établi, et que le poids du volume des données se fait sentir, alors tenter de le remodéliser pour gagner des performances est un chalenge difficile : les évolutions du schéma conduisent à des migrations de données importantes (donc risquées) et des modifications d'interfaces conséquentes (donc du code à récrire). Lorsqu'il s'agit d'une base de données volumineuse, l'inertie des données peut être telle que l'alternative est s'adapter avec un coût de modification élevé ou mourir. C'est pourquoi un modèle de données bâclé présente la particularité d'avoir un coût très élevé lorsqu'il doit être rectifié, alors qu'un modèle peaufiné présente un coût quasi nul si l'on utilise l'outil adéquat et l'homme d'expérience.
Malheureusement, les français ont beau avoir inventé une méthode de modélisation d'une grande simplicité (MERISE2) il n'en demeure pas moins que peu d'informaticiens savent modéliser les données de manière intelligente. Bref, ce sont de ces écueils que je veux aujourd'hui vous entretenir, et pour cela, j'ai découpé en différentes parties le présent article. La première traite des types de données, la seconde des clefs, la troisième des tables et la quatrième de la normalisation.
Quelques aspects essentiels de la conception des bases de données
La clé de bonnes performances des SQL Server à mieux employer les index lors de la réponse à une requête
Lire l'articleConstruisez un système ETL simple avec SSIS
Vous savez probablement que vous pouvez utiliserun entrepôt de données (data warehouse).Mais comment allez-vous procéder ? À quoi ressemble une application ETL ?SSIS se targue de proposer tellement de nouveautés que les nouveaux venus ont l’impression d’avoir déballé un puzzle sur leur bureau. Il est difficile d’assembler les pièces sans avoir sous les yeux une vue d’ensemble du résultat final, notamment lorsque les pièces d’autres puzzles viennent jouer les trouble-fêtes ou lorsque certains éléments manquent !
L’objectif de cet article est justement de fournir la vue d’ensemble nécessaire : nous allons aborder les opérations élémentaires de conception et de construction de packages SSIS, et ainsi fournir les bases pour l’étude ultérieure des techniques de chargement incrémentiel concernant les dimensions et faits, ainsi que les variables, les scripts et l’audit de base des processus.
Placez les données de vos cubes sur le devant de la scène
une autre perspective de leurs données. Cette capacité peut s’avérer importante lorsque les rapports doivent afficher un grand nombre de mesures et se servent des dimensions en tant que tranches de données.
Par exemple, un rapport qui présente plusieurs mesures pour un seul employé ou produit n’a pas besoin de reprendre cette même information sur les lignes ou dans les colonnes. Par conséquent, nous allons voir comment placer les mesures sur les lignes et une autre dimension, Time, dans les colonnes, tout en réalisant les tranches à partir d’une autre dimension. Nous allons également expliquer comment paramétrer une requête MDX et appliquer un formatage aux valeurs.
Validation Intelligente des données
Lorsqu’une personne vous demande de décrire les données de votre entreprise, d’un système précis ou d’une base de données spécifique, combien de fois n’avez-vous pas répondu en mettant l’accent sur la taille du stockage, le taux de croissance, le nombre de tables ou le nombre de lignes ?Ces caractéristiques sont certes importantes pour la conception et la gestion d’une solution efficace et maintenable, mais je vous propose de ne pas limiter vos réponses à la quantité ou au volume, mais également d’inclure une caractérisation de la qualité des données. Après tout, ce n’est pas la quantité des données qui importe, mais leur qualité. Une entreprise peut avoir la plus grande base de données au monde, avec le taux de croissance le plus impressionnant, mais si elle ne peut quantifier la qualité de ses données, celles-ci n’ont aucune utilité.
Le terme « validation intelligente des données » décrit le concept consistant à configurer l’environnement de base de données et de traitement afin d’appliquer automatiquement la validation. Lorsque vous concevez, mettez en oeuvre et gérez vos propres bases de données, vous devez prendre en compte plusieurs aspects essentiels de leur conception : la propriété des données, leur intendance, leurs définitions, leur modélisation, leur normalisation, les valeurs NULL et les types de données, ou encore le nettoyage et l’intégrité des données.
À mesure que vous découvrirez ces aspects tout au long de l’article, rappelez- vous qu’il n’existe rien d’absolu en matière d’options de conception et d’implémentation. Au contraire, vous devez considérer systématiquement les fonctionnalités, avantages et compromis de chaque aspect par rapport à votre environnement spécifique. Si vous gardez cette règle à l’esprit tout au long de votre lecture, vous trouverez des tonnes d’idées pour accroître la qualité de vos données en mettant en oeuvre des stratégies intelligentes de validation de ces dernières.
Révisez vos bases de la conception avec SQL Diagrammer
Depuis combien de temps n’avez-vous pas effectué de la modélisation des données ? Etait-ce hier ? Le mois dernier ? Il y a une éternité, pendant vos études universitaires ? Si vous entrez dans la dernière catégorie, quelle est votre excuse ?A) Je n’en ai pas besoin pour mon travail.
B) Je n’ai pas le logiciel approprié.
C) Je ne sais pas comment procéder.
Si vous avez répondu par B) ou C), j’ai de bonnes nouvelles à vous annoncer : si vous avez SQL Server 2005 ou 2000, vous disposez d’un outil de modélisation de données intégré. Parfois connu sous l’appellation outils DaVinci ou Concepteur de bases de données, le concepteur de diagrammes SQL Server ou SQL Server Diagrammer est disponible dans l’arborescence de SQL Server 2005 Management Studio sous la forme « Database Diagrams » et en tant que « Diagrammes » (Diagrams) dans la console SQL Server 2000 Enterprise Manager. C’est ce logiciel qui vous aidera à décrire vos schémas de base de données et même à concevoir vos futures bases de données. A mesure que nous allons explorer cet outil élémentaire, vous verrez comment il peut vous donner une bonne représentation visuelle facilement exploitable de vos bases de données.
Aucun travail d’indexation, aucune programmation intelligente ou aucun matériel plus puissant ne peut contrebalancer une conception médiocre. En revanche, si vous commencez par modéliser et par réaliser la conception appropriée, vous serez bien parti pour obtenir une base de données très performante. (Pour en savoir plus sur l’importance et les avantages d’une bonne conception de base de données, lisez l’encadré Web « Why Model? », http://www.itpro.fr (Club Abonnés), et pour une présentation de la modélisation dimensionnelle appliquée à l’analyse décisionnelle, consultez l’article « Les bases de la modélisation dimensionnelle », dans SQL Server Magazine Juin 2006.)
Le logiciel de modélisation est utilisé de deux manières : pour décrire et pour concevoir. En mode description, il sert à cataloguer l’existant : les systèmes, processus, référentiels de données, applications et systèmes logiciels qui concourent à la réussite de votre entreprise, ainsi que les documents qui décrivent les méthodes employées pour accomplir les tâches. En mode conception, vous vous tournez vers l’avenir. Vous écoutez les griefs et problèmes des utilisateurs, à savoir des employés en première ligne jusqu’aux échelons de direction (par ex., PDG, Directeur financier) et vous allez utiliser le logiciel de modélisation pour concevoir les structures de données permettant d’atténuer ces griefs et problèmes. Il existe de nombreux logiciels pour la modélisation de bases de données et l’encadré Web « Describe and Design », http://www.itpro.fr (Club Abonnés), présente les types de fonctionnalités des différents outils disponibles. L’outil de modélisation de SQL Server est relativement basique. Il est idéal pour la tâche de description et il serait donc plus approprié de le considérer comme un outil de conception de diagrammes, plutôt qu’un outil de modélisation. Pour les besoins de cet article, je ferai référence au concepteur de diagrammes SQL en tant qu’outil de modélisation et aux graphiques qu’il crée en tant que modèles. Une fois familiarisé avec le fonctionnement du concepteur de diagrammes SQL, vous pour
Optimisation des bases de données SQL Server : l’exploitation
Votre modèle des données est parfait : justement normalisé et très légèrement dénormalisé par des techniques fiables et pour des données dont il est prouvé que cela apporte un gain significatif. Vos requêtes sont optimisées et les serveurs, tant logiques que physiques, comme leurs environnements sont taillés, dimensionnés, mesurés, configurés pour le volume de données et de transactions à subir. Enfin, vous avez pensé au découpage de vos espaces de stockage, choisi vos disques et constitué vos agrégats en conséquence… Pourtant il vous manque une brique pour parfaire votre oeuvre : penser l'exploitation de vos données au quotidien, c'est là SQL Server sur le site communautaire de developpez.com, un internaute postait un remarquable message. Il avait une procédure complexe longue et coûteuse en traitement qui importait des données dans une base, avec une planification quotidienne de nuit. Un matin quelle ne fût pas sa stupeur de constater que cette procédure qui durait habituellement un peu plus d'une heure, n'était pas encore terminée. Il attendit donc la fin du traitement et constata que ce dernier avait mis près de 10 heures, soit 8 fois plus qu'ordinairement. Que s'était-il passé ?
Contenu complémentaire Numéro hors série : Gestion et optimisation des environnements multi bases de données Le site du groupe utilisateurs de SQL Server : le GusS |
Lire l'article
SQL imbriqué : démarrage rapide
Avec SQL imbriqué, vous pouvez inclure des instructions SQL dans un programme écrit dans un autre langage – généralement RPG. En ajoutant stratégiquement SQL à vos programmes RPG (ou Cobol ou CL), vous pouvez améliorer la performance, simplifier le code, voire accomplir des prouesses dont SQL ou RPG sont incapables isolément.
Pour commencer à utiliser SQL imbriqué, le bagage à posséder est simple : une bonne connaissance de la programmation RPG et une bonne maîtrise de la syntaxe SQL. Il vous faudra aussi le DB2 Query Manager and SQL Development Kit for iSeries LPP (5722ST1), désigné généralement sous le nom de kit de développement SQL. Ce LPP est souvent déjà installé dans beaucoup de sites de développement System i. Et il est inclus dans certaines éditions de i5/OS sans frais supplémentaires. Ces conditions étant remplies, vous êtes prêts à examiner comment SQL imbriqué s’intègre au RPG.
Contenu complémentaire Article : Guide pour traiter les erreurs de SQL imbriqué |
Lire l'article
Automatisez vos audits de sécurité
SQL Server ? Fort heureusement, il existe des mesures permettant de réduire sensiblement les risques. Vous pouvez prévenir (ou au moins limiter) de nombreuses attaques SQL simplement en vérifiant initialement que vos bases de données et serveurs sont sécurisés comme il se doit.
La configuration de tous les ports d’écoute est-elle appropriée ? Avez-vous désactivé l’ensemble des bibliothèques réseau superflues ? Avez-vous pensé à supprimer les anciens fichiers de configuration SQL Server ? Et la liste ne s’arrête pas là.
Admettons-le, il faut du temps pour sécuriser tous les points de contrôle jusqu’au dernier et pour conserver une longueur d’avance sur les personnes malintentionnées. Chaque jour apporte son lot de nouvelles vulnérabilités concernant la sécurité, d’où la nécessité d’ajouter de nouveaux contrôles et d’effectuer une surveillance fréquente pour rester à l’abri des mauvaises surprises.
Dans ces circonstances, il serait épatant de pouvoir automatiser quelque peu toutes ces tâches d’audit longues et fastidieuses. C’est désormais possible si vous appliquez les techniques simples exposées dans cet article et si vous adaptez le code fourni à votre situation spécifique.
Optimisation des bases de données MS SQL Server : les requêtes
En théorie, quelle que soit la façon d'écrire une requête, le SGBDR doit être capable de trouver le moyen le plus efficace de traiter la demande, grâce à l'optimiseur. Mais parce qu'il y a loin de la théorie à la pratique, différentes écritures et différents styles de résolution, alliés à la qualité de l'indexation peuvent donner des temps d'exécution très variés.
C'est pourquoi la maîtrise de la conception de requêtes est un des points clefs de la performance d'une base de données bien conçue. Voyons quels en sont les principes basiques.
Dans un cours que je donne aux Arts & Métiers, je montre comment une bonne indexation alliée à la qualité de l'écriture des requêtes, peut faire varier dans une proportion de plus de 300 le temps d'exécution d'une requête. Je commence l'exercice par une demande simple : écrire une requête SQL permettant de répondre à une question basique, mais en prenant soin d'exprimer différentes solutions, même les plus bizarres.
Outre la solution simpliste, certains y arrivent par une union, d'autres avec des sous requêtes, d'autres encore avec des jeux de CASE... L'exécution brute de toutes ces solutions, donne un coût d'exécution allant du simple au triple. La pose d'un premier index trivial ne donne rien, par manque de sélectivité. Après élimination de cette première tentative, la pose d'un nouvel index montre que les requêtes les plus coûteuses au départ deviennent les plus rapides, alors que celles qui étaient les moins coûteuses à l'origine n'ont rien gagné. Un nouvel essai d'indexation remet toutes les requêtes au même rang qu'au départ, chacune gagnant dans la même proportion et plus que l'indexation précédente.
Enfin, la dernière tentative d'indexation étant la bonne, toutes les requêtes bénéficient d'un gain important, mais certaines bien plus que d'autres. Le clou est enfoncé lorsque l'on choisit de dénormaliser avec une vue. Là, le gain devient gigantesque. Il est voisin de 13 000. Mais il ne prend pas en compte l'effort supplémentaire à faire pour les mises à jour (INSERT, UPDATE, DELETE...).
Cet exercice nous apprend trois choses :
• différentes écritures d'une même requête ne donneront pas forcément les mêmes performances, bien que dans l’absolu, ce devrait être le cas [1]
• rien ne sert de poser un index s'il ne sert pas la requête
• une même requête écrite de différentes manières ne bénéficiera pas des mêmes gains lorsque l’on pose un index J’ajouterai que tout ceci évolue en fonction de la volumétrie des données et des données mêmes !
Tant est si bien qu’il est difficile de trouver de prime abord ce qu’est l’écriture d’une bonne requête. Affirmons cependant qu’une bonne requête est une requête qui sait tirer partie du moteur de requête pour le forcer à calculer un plan de requête dont les étapes sont les plus courtes à traiter.
[1] En fait, nous croyons souvent et naïvement que certaines écritures de requêtes sont identiques. Mais nous oublions souvent l’influence du marqueur NULL, dont le comportement particulier dans différents prédicats oblige le moteur SQL à des constructions parfois fort différentes.
XML et SQL SERVER
Les informations échangées entre les différents systèmes, les différentes applications le sont de plus en plus auSQL Server, se sont adaptées. En effet, SQL Server à, entre autre, pour objectif de faciliter le travail avec les données. Pour cela, SQL Server dispose d'un ensemble d'instructions pour extraire des informations relationnelles au format XML ou bien l'opération inverse qui consiste à lire des données au format XML afin de stocker les informations dans une structure relationnelle classique.
Ces 2 étapes sont nécessaires et permettent de confier au moteur de base de données la plupart des transformations depuis ou vers le format XML à SQL Server. Mais SQL Server propose plus en offrant la possibilité de créer des colonnes de type XML. En intégrant directement les informations XML dans la structure relationnelle classique, SQL Server offre plus de souplesse en terme de stockage. Ce type XML est bien plus qu'un simple champ texte car SQL Server rend possible l'indexation des colonnes de type XML mais également la mise à jour, l'ajout et la suppression de données dans le document XML lui-même.
Ce sont ces trois fonctionnalités (extraire les informations au format XML, importer des données XML, stocker des données au format XML) de SQL Server qui sont exposées ci-dessous.
La sécurité de SQL Server 2005 en 10 étapes
Le produit SQL Server 2005 de Microsoft est un sécuriser les composants de l’infrastructure, notamment les serveurs de base de données. Cette stratégie met l’accent sur la protection de la périphérie, du réseau, des hôtes, des applications, des données et sur les défenses physiques. Le présent article expose 10 étapes à respecter avant, pendant et après l’installation de SQL Server 2005, afin de blinder votre infrastructure avec une défense en profondeur.
Organisation des index dans SQL Server 2005
SQL Server 2005 introduit un nouveau modèle pour les commandes DDL (Data Definition Language). Vous allez créer tous les objets au moyen d’une commande CREATE, les supprimer à l’aide d’une commande DROP et les modifier avec ALTER.SQL Server 2005 n’utilisera pas de procédures stockées distinctes pour modifier un aspect d’un objet, comme sp_defaultdb dans SQL Server 2000 et 7.0, qui modifie la base de données par défaut d’un utilisateur, ou encore les commandes de création spéciales à finalité unique telles que sp_addtype. SQL Server 2000 a déjà fait un pas dans cette direction en améliorant la fonctionnalité de la commande ALTER DATABASE afin d’inclure toutes les modifications apportées aux propriétés de base de données et en décourageant le recours à la commande sp_dboption.
Lire l'articleVue d’ensemble des informations de fragmentation SQL Server
L’article « Organisation des index dans SQL Server 2005 » présente les spécifications permettant d’appeler la nouvelle fonction TVF (Table-Valued Function) sys.dm_db_index_physical_stats() dans SQL Server utilise des listes de pages séparées (organisées en fonction du mode de stockage par SQL Server des données sur la page). Par ailleurs, la version 2005 introduit la possibilité de créer une table ou un index sur des partitions distinctes, chaque partition ayant sa propre liste de pages. Une liste de pages d’un type pour une partition est appelée unité d’allocation. SQL Server 2005 gère un maximum de trois unités d’allocation pour chaque table ou index de chaque partition. Ces trois unités d’allocation sont mappés avec trois types de pages gérés par SQL Server 2005 : IN_ROW_DATA (à savoir les lignes de données ou d’index classiques), LOB_DATA (à savoir, les données d’objets de grande taille, telles que text, ntext ou image) et ROW_ OVERFLOW_DATA (un nouveau type de stockage).
Lire l'article