Cas d'usage A070 - Modèle physique des données Page 1 / 12
1. Cas d'usage 3 1.1. A070 - Modèle physique des données 3 1.2. Etape 3 2. Etape 5 2.1. Création d'un modèle vide 5 2.2. Importer les objets dans le diagramme 6 2.3. Utiliser le diagramme pour naviguer 7 2.4. Proposition d'indexes 8 2.5. Traçage des requêtes SQL 10 2.6. Accès simple à la base 11 2.7. Top 10 des requêtes longues 12 Page 2 / 12
1. Cas d'usage 1.1. A070 - Modèle physique des données Application Application1 Logo Nom A070 - Modèle physique des données Objet testé Utilisation du modeleur graphique pour visualiser les schémas des tables de la base de données. Exécuté en tant que designer 1.2. Etape # Etape Objet Action 10 Création d'un modèle vide 20 Importer les objets dans le diagramme ModelTemplate list 30 Utiliser le diagramme pour naviguer ObjectInternal update 40 Proposition d'indexes ObjectInternal custom 50 Traçage des requêtes SQL 60 Accès simple à la base Page 3 / 12
70 Top 10 des requêtes longues Page 4 / 12
2. Etape 2.1. Création d'un modèle vide - Se connecter en designer - Cliquer sur le bouton "Créer" du gadget "Diagrammes" à droite de l'écran - Sélectionner le template "ModelPhysicalObject" - Renseigner un nom unique pour votre diagramme - Cliquer sur "Créer", un modèle vide est généré Exercice : créer un modèle "MPD-Client" pour représenter le modèle physique gravitant autour de l'objet AppClient. Page 5 / 12
2.2. Importer les objets dans le diagramme Utiliser les menus contextuels (via clic droit) pour accéder aux actions du modeleur : - sur la zone de travail : actions pour inserer des objets, les aligner, sauvegarder le modèle, ajouter des notes ou des conteneurs, etc. - sur un objet : actions pour accéder à l'objet ou lui ajouter des contenus, changer sa couleur, etc. - sur un lien : actions pour accéder à l'objet de la relation, changer les propriétés du connecteur graphique Exercice : - clic droit sur la zone vide - cliquer sur "insérer un objet" - sélectionner l'objet "AppClient" dans la liste - clic droit sur la table "app_client" importée sur la zone de dessin - clic sur l'action "Import connexe" pour importer les tables en relation avec elle - importer de la même manière la table "app_interet" - repositionner les tables - via la barre d'actions, zoomer à une taille désirée et enregistrer le modèle - imprimer le modèle sur une ou plusieurs pages Page 6 / 12
2.3. Utiliser le diagramme pour naviguer Le modeleur est en interaction avec la zone de travail centrale de Simplicité, mais il peut être ouvert indépendamment de ce qui s'y passe : - Un double-clic sur une table ouvrira l'objet métier associé - Un double-clic sur une colonne ouvrira la définition de l'attribut associé - Une mise à jour s'actualise automatiquement dans le modèle ouvert Si une mise à jour est effectuée par un autre utilisateur dans une autre session, des déphasages peuvent apparaître entre le paramétrage et la représentation graphique. Il faut dans ce cas utiliser l'action "Actualiser" pour synchroniser le modèle (ou juste un objet) avec la définition en base de données. Exercice : - ouvrir les objets, les liens et les attributs depuis le modeleur Page 7 / 12
2.4. Proposition d'indexes Pour aider le concepteur, depuis la définition d'un objet métier, une action "Proposition d'indexes" (icone de baguette magique) permet de générer différents scripts SQL : - la création de la table de persistance : appliqué par Simplicité si la table n'existe pas - des propositions d'indexes pour optimiser les accès en lecture : les indexes ne sont pas automatiquement créés, le designer doit choisir ceux qui sont pertinent et les passer manuellement sur la base. Les indexes proposés sont déterminés globallement par : - tous les champs "clé fonctionnelle" de l'objet (index unique) - toutes les clés étrangères (index simple) - tous les champs typés avec une recherche possible - certains timestamps D'une manière générale : - Tout objet métier contient une clé technique unique : le "row_id" numérique et incrémental. - C'est le row_id qui est utilisé dans les jointures entre tables. Lorsque la clé étrangère est facultative, Simplicité génère une jointure externe "outer join", sinon la jointure est stricte "inner join" - Il est possible de désigner un autre attribut fonctionnel comme étant la clé unique (pour un usage avancé). - Un objet métier dont la propriété "Usage d'un timestamp" est coché aura 4 colonnes physiques supplémentaires : Page 8 / 12
a) created_dt : date de création de la ligne b) created_by : login de l'utilisateur qui a créé la ligne c) updated_dt : date de dernière mise à jour, utilisé pour la concurrence d'accès (interdire la mise à jour si un autre utilisateur a déjà modifié la ligne), et l'expiration d'un état donné (lié à une Alerte sur un état de l'objet) d) updated_by : login du dernier utilisateur ayant modifié la ligne Exercice : - visualiser la proposition d'index sur la table app_client - créer ses indexes en base an passant par le "DB Access" du menu "Exploitaiton / Accueil". Page 9 / 12
2.5. Traçage des requêtes SQL Simplicité permet pour un DBA de tracer et donc d'optimiser la base de données : - de consulter les requêtes générées dans les logs en activant des sondes - d'agir sur la base au travers d'une IHM simple de passage de requêtes - de lister les 10 requêtes ayant pris le plus de temps depuis le démarrage du serveur Pour activer les sondes : - Positionner le paramètre système "LOG_SQL_USER" à "yes" et vider touts les caches - Les temps d'accès seront plus long et les logs seront volumineuses, il faut donc activer cette sonde uniquement en conception/test, jamais en production. - les logs serveurs contiendront toutes les requêtes utilisateurs - repositionner le paramètre "LOG_SQL_USER" à "no" + vider la cache pour arrêter ce traçage. Exercice : - activer la sonde LOG_SQL_USER / vider la cache - se reconnecter en ouvrant un client - consulter les logs serveur - désactiver la sonde / vider la cache Page 10 / 12
2.6. Accès simple à la base Simplicité dispose d'une page très simple pour accéder à la base de données. L'objectif est de dépanner ou de permettre des accès simples, et non de remplacer les outils propres à l'éditeur du SGBD : - Ouvrir la page d'accueil du menu Exploitation - Cliquer sur le bouton "DB Access" - saisir votre requête (possibilité d'en renseigner plusieurs séparée par points-virgules et retour à la ligne) - exécuter et voir le résultat de la sélection ou de la mise à jour Exercice : créer les indexes sur vos objet en utilisant cette fonction. Page 11 / 12
2.7. Top 10 des requêtes longues - Ouvrir le menu Exploitation / Monitoring - Se positionner sur l'onglet "Data" La liste présente les temps des 10 requête les plus longues, ce sont celles à optimiser si possible en priorité (analyse et création d'index par un DBA). Cette liste reste informative et n'a pas pour objectif de remplacer les outillage des éditeurs de SGBD (OEM Oracle par exemple). Parfois des requêtes très simples mettent du temps tout simplement parce que le serveur est très chargé en CPU, ce qui n'a donc rien à voir avec la requête en elle-même. La plateforme Simplicité peut uniquement mesurer le temps global de chaque requête entre la soumission et la réponse du SGBD. Page 12 / 12