To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.

Slides:



Advertisements
Présentations similaires
Association des Entrepreneurs de l’Auxois
Advertisements

Optimisation des requêtes
GEF 435 Principes des systèmes d’exploitation
Gestion de portefeuille
Règles d’association.
Recherche de motifs par méthodes exploratoires: Comparaisons de performances et statistiques sur le score.
Algorithmes à base darbre BSP. Principe Se servir dune structure arborescente afin déliminer le traitement dune branche entière sur un test de visualisation.
Equipe optimisation TempoSoft
Optimisation algébrique de requêtes relationnelles
PROPRIETES PHYSIQUES DES BOIS
Techniques dindexation Implémentation du modèle relationnel ~ LIF10: Fondements des bases de données relationnelles.
R. Saint-Paul, G. Raschia and N. Mouaddib IRIN, Nantes (France)
Ordonnancement des mouvements de deux robots
Configurer des systèmes d'exploitation 243-J28-SL cours 15
Génération de colonnes
Sélection automatique d’index et de vues matérialisées
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Amélioration de la sécurité des données à l'aide de SQL Server 2005
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Programmation linéaire
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Plan d’expérience dynamique pour la maximisation
L’utilisation des bases de données
Les fichiers indexés (Les B-arbres)
LES ARBRES IUP 2 Génie Informatique
Structures de données IFT-2000
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
1 Évaluation des Requêtes: Survol Chapitre Objectifs Catalogue Préliminaires: Techniques de base pour traiter des requêtes Chemin daccès Correspondance.
Optimisation des Requêtes Relationnelles
1 Évaluation des Requêtes: Survol Chapitre Objectifs Catalogue Préliminaires: Techniques de base pour traiter des requêtes Chemin daccès Correspondance.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Évaluation des Requêtes: Survol Chapitre 12.
Universté de la Manouba
Algorithmes d ’approximation
Optimisation dans les réseaux
Module 2 : Préparation de l'analyse des performances du serveur
Les arbres binaires.
Contrôle « rapide » Indiquer votre série GAUCHE ou DROITE
2 Analyse et Optimisation des Performances du moteur SQL Serveur 10 février 2011 Frédéric Pichaut EMEA SR ESCALATION ENGINEER Microsoft France.
Génération de colonnes pour la résolution des problemes de foresterie
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Graph cuts et applications
Créer des packages.
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
Programmation linéaire en nombres entiers
1 Alain Casali Christian Ernst Extraction de Règles de Corrélation Décisionnelles 29 Janvier 2009.
Algorithmes Branch & Bound
Arbres binaires et tables de hachage
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
ETNA – 1ème année Guillaume Belmas –
Traitement de texte +.
Romain Dupont encadré par J.Aubourg et P. Fuchs
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Configurer des systèmes d'exploitation 243-J28-SL cours 15.
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Les bases de données Séance 8 Jointures.
Correction problème 1.
Le Jeu et l’intelligence artificielle
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Bases de données – Cours 3
Algorithmique Boucles et Itérations
Chapitre 12 Surveillance des ressources et des performances Module S41.
TD N°5: Une GPAO pour l’usine Odyssée. Lancement du logiciel Logiciel « Usine Odyssée 7 » disponible dans … Entrer votre nom et un nom d’entreprise de.
Transcription de la présentation:

To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007

Plan Problèmes exposés Présentation dune solution Principe Fonctionnement de loptimiseur Calcul de la borne inférieure Calcul de la borne supérieure Expérimentation Conclusion

Problèmes exposés: Le Tuning des conceptions physiques : Les données et les charges de travail sont souvent modifiées : Existence doutils de Tuning : - Efficaces - Chers - Consomment beaucoup de ressources. Le Tuning des conceptions physiques : Les données et les charges de travail sont souvent modifiées : Les installations sont souvent « sous optimisées ». « Gaspillage de ressources » Objectif des DBA : avoir des installations optimales: - Utilisation régulière des outils de Tuning. - Mais utilisation inutile si absence damélioration possible :

LAlerter Solution - Rôle : Analyse la charge de travail et détermine si une session de Tuning peut améliorer la configuration actuelle. - Caractéristiques: Analyse de faible coût : - Fonctionne seulement avec l'information recueillie quand la charge de travail était optimisée et non pas sur les différents appels de lalerter. Calcul de la borne inférieure pour lamélioration: - Pas de positif faux (fausse alerte) - Certain que l'amélioration réalisée par un outil de Tuning serait aussi importante. Calcul de la borne supérieure : - Réduit les faux négatifs (absence dalerte).

Principe

Fonctionnement de loptimiseur Sélection des chemins daccès: 1- Lorsque le module de génération des chemins daccès reçoit une requête, il analyse les index disponibles et renvoie un ou plusieurs plans dexécution candidats.

Fonctionnement de loptimiseur 2- Il intercepte les requêtes et stocke le tuple (S,O,A,N). -> Permet de conserver les propriétés de stratégie dindex afin déviter le relancement de lAlerter en cas de modification de conception.

Fonctionnement de loptimiseur Linterception des requêtes dindex : SELECT T.b FROM T1, T2, T3 WHERE T1.x=T2.y AND T1.w=T3.z AND T1.a=5 AND T3.b=8

Fonctionnement de loptimiseur Algorithme de génération de larbre « AND/OR »: BuildAndOrTree(T:Execution Plan) = IF (T.isLeaf) // Case 1 RETURN T.request ELSE IF (T.request is null) // Case 2 RETURN AND( BuildAndOrTree(T.child1),..., BuildAndOrTree (T. childn) ) ELSE IF (T.isJoin) // Case 3 RETURN AND( BuildAndOrTree (T.leftChild), OR( T.request, BuildAndOrTree(T.rightChild))) ELSE // Case 4 RETURN OR( T.request,BuildAndOrTree (T.child)) Arbre normalisé

Calcul de la borne inférieure Objectif: Obtenir efficacement la borne inférieure sur l'amélioration de la charge de travail. L'amélioration d'une configuration est définie par: 100%.(1 – coût après / coût courant ) où coût courant et coût après sont les coûts estimatifs de la charge de travail pour la configuration originale et la configuration recommandée. Une borne inférieure sur lamélioration = une borne supérieure sur le coût estimé On va se servir de larbre AND/OR généré lors de loptimisation sans appeler à noueau loptimiseur

Calcul de la borne inférieure On dispose: Du chemin daccès choisi par loptimiseur Du coût de chaque branche du plan dexécution généré De lespace maximum disponible pour de nouveaux index Principe: On peut remplacer chaque sous arbre par un sous arbre implémentant la même requête On va rechercher quels index seraient plus adaptés Le seek_index: Index préfixé par les membres de S ayant une égalité Suivi des membres ayant une inégalité par ordre descendant Le reste des colonnes Le sort_index: Index préfixé par les membres de S ayant une égalité Suivi des membres de O par ordre descendant On fait une estimation du coût de la requête avec chaque index

Calcul de la borne inférieure On ne regarde pas: Les index multiples pour une seule table Les variation darbre dexécution (ordre de jointure…) Relaxation: Si on a plusieurs index sur la même table on va les mélanger ou les supprimer I(a, b, c) + I(a, c, d) => I(a, b, c, d) Coût total: Somme des coûts de chaque sous arbre

Calcul de la borne supérieure rapide Principe Pour chaque feuille de larbre (chaque table), on cherche le meilleur index possible On renvoi les choix dindex et la somme des coûts de cette configuration Trop Optimiste On ne regarde que les feuilles, pas les jointures et agrégats On ne soccupe pas des contraintes despace (index gros)

Calcul de la borne supérieure Précise Principe Se fait en même temps que loptimisation A chaque requête dindex, on regarde quel serait le meilleur On simule sa présence On continue loptimisation On regarde les résultats de loptimiseur Problème On utilise des index qui nexistent pas vraiment Le plan dexécution généré nest pas « faisable »

Calcul de la borne supérieure Précise (suite) Solution Lancer deux fois loptimiseur (une fois en supposant et une fois normalement) Lourd (le but est de rester transparent) Optimisation On mélange le calcul des deux plans dexécution On calcule le meilleur sous plan faisable Puis on simule lindex localement optimal et on continue A chaque étape on choisit un index réel et un index hypothétique On obtient donc les deux plans simultanément en rajoutant peu de surcharge

Extensions Gestion des Update On coupe les updates en deux: UPDATE T SET a=b+1, c=c*2 WHERE a<10 AND d<20 Devient: (i) SELECT b+1, c*2 FROM T WHERE a<10 and d<20 (ii) UPDATE TOP(k) T SET a=a, c=c On cherche les meilleurs index possibles pour le select On nettoie normalement, mais en tenant compte du coût de modification de lupdate Les index non optimaux pour le select ne sont pas forcément rejetés Les index couvrant toutes la requête sont probablement rejetés car trop durs à maintenir

Extensions Gestion des vues matérialisées Pour chaque requête on simule des vues matérialisées On simule également des index sur ces vues Très cher et très lourd Beaucoup de recherche sur les vues et dautres conceptions physiques comme le partitionnement

Expérimentation La partie client de lAlerter est implémentée en C++ avec une base Microsoft SQL Server Loutil de Tuning est Microsoft SQL Server Database Tuning Advisor. Bases de données utilisées:

Résultats: Pour requêtes simples :

Variation des charges de travail La configuration de W1 est déjà optimale -> lAlerter nenvoie pas dalarme. Charges de travail pour la base TPC-H: W1 (les 11 premières requêtes) W2 (les 11 dernières requêtes) W3 (mélange).

Variation des charges de travail Alerter tout seul très rapide (moins de 1 seconde en moyenne) Les requêtes sont différentes, lexécution de requêtes identiques augmente les pondérateur de larbre AND/OR, mais ne modifient pas larbre lui-même, donc naugmentent pas le temps dexécution

Variation des charges de travail Peu de surcharge en mode rapide Environ 15% (jusquà 40%) de surcharge moyenne en mode précis Borne supérieure importante, mais lessentiel est la borne inférieure (nécessité de lancer un outil de tuning)

Conclusion Lalerter complète les fonctions dun outil de Tuning. Il demande peu de ressources et tourne régulièrement pendant une opération. Alerte le DBA si une conception nest pas optimale. Les bornes inférieures sont supportées par des configurations valides. Les bornes supérieures sont flexibles et donnent la possibilité au DBA de définir des règles de déclenchement de sessions de Tuning.