S23 Analyse des performances DB2 for i : outils et stratégies d'indexation

Dimension: px
Commencer à balayer dès la page:

Download "S23 Analyse des performances DB2 for i : outils et stratégies d'indexation"

Transcription

1 Evénement "Modernisation IBM i" des 19 et 20 mai 2015 IBM Client Center Paris, Bois-Colombes S23 Analyse des performances DB2 for i : outils et stratégies d'indexation Mercredi 20 mai 13h30-15h00 Intervenant Eric Saglier (eric.saglier@six-axe.fr)

2 Plan de la présentation S23 1. Technologie d indexation de DB2 for i 2. Création d index 3. Les index et l optimisation des requêtes 4. Stratégie d indexation 5. Les outils 2

3 Technologie d indexation de DB2 for i Deux types d index sont supportés par DB2 for i Les index de type Radix Les index de type EVI (Encoded Vector Index) Chaque type présente des spécificités et des avantages Ces deux types de technologies se complètent parfaitement Ces deux types d index sont utilisés aussi bien pour la mise à jour des statistiques que pour l exécution des requêtes Les index sont utilisés de manière «Scanner» ou/et «Prober» 3

4 Lecture des index Lecture «Scanned» Lecture séquentielle de l index Balayage de tous les postes d'index à la recherche des postes correspondants à la sélection Lecture «Probed» Fourniture d une clé Parcours (rapide) dans l'arbre binaire Accès au RRN (Relative Record Number) 4

5 Scan/Probe Existence d un index sur les colonnes (ITEM_NO, COLOR, SIZE) WHERE COLOR = NOIR and ITEM_NO = 003 WHERE SIZE = MEDIUM WHERE ITEM_NO =001 AND SIZE = LARGE Accès Probe (Positionnement sur clé) Clé(s) principale(s) + n clés contiguës Accès Scan (Test d index) N importe quel ordre de clés ITEM_NO COLOR SIZE 001 BLEU LARGE 002 ROUGE SMALL 003 NOIR SMALL 004 VERT MEDIUM 5

6 Index de type Radix 1/2 Les index de type Radix utilisent une structure de type arbre binaire Les valeurs de clés sont compressées logiquement Les données communes sont stockées une seule fois Les données uniques sont stockées seules Existence d un algorithme propre de recherche au sein d un arbre binaire Maintenance L arbre est automatiquement mis à jour en fonction des opérations réalisées au travers du DML (Data Manipulation Language), afin de maintenir une structure de données efficace 6

7 Index de type Radix 2/2 Root Code State 001 ARKSANSAS Test Nœud MISS 002 MISSISSIPI 003 MISSOURI AR IOWA 004 ISSISSIPI 002 OURI IOWA 005 ARIZONA IZONA 005 KANSAS 001 Avantages Accès très rapide à une seule valeur de clé Accès rapide à un petit ensemble de clés (peu de cardinalité) Tri demandé Désavantages Lignes récupérées dans l ordre des valeurs de clés (pas de l ordre physique) équivalent à des I/O random Aucune manière de prédire quelles seront les pages suivantes pour des valeurs de clés importantes 7

8 Index de type EVI Index conçu afin de délivrer des accès rapides dans les environnements de type «report analytique» Technologie issue de travaux de recherche IBM Permet de produire dynamiquement des listes de RRN Accès très rapide aux statistiques afin de faciliter les décisions de l Optimiseur Ce n est pas une structure de type «arbre» Ne peut être créé que par l intermédiaire d une interface SQL, d IBM Navigator for i ou de System i Navigator CREATE ENCODED VECTOR INDEX Mabib.Ixnom ON Mabib.Tablenom (Key1, Key2, ) INCLUDE (SUM(Col2)) (Nouveauté 7.1) 8

9 Index de type EVI La table des symboles contient des informations pour chaque valeur distincte de clé Chaque clé se voit affecter un code unique Le code est sur 1,2 ou 4 octets (en fonction du nombre de valeurs distinctes) Nouveauté en 7.1 : possibilité de spécifier AVG, COUNT, COUNT_BIG, SUM, STDDEV, STDDEV_SAMP, VARIANCE, VARIANCE_SAMP En lieu et place d un tableau de bits pour chaque valeur, utilisation d un tableau de vecteurs 9

10 Utilisation d un EVI Si l optimiseur utilise un EVI A partir de la table des vecteurs et pour les valeurs répondant aux critères de sélection, le système bâtira une liste de RRN en positionnant un bit à *ON ou *OFF 10

11 Utilisation d un EVI AND EVI et utilisation d un AND Select * from samples.employee where WORKDEPT in ('B01', 'D11', 'C01') AND JOB = 'MANAGER' 11

12 Utilisation d un EVI OR EVI et utilisation d un OR Select * from SAMPLES.EMPLOYEE where WORKDEPT = 'B01' OR JOB = 'MANAGER' 12

13 Utilisation d un EVI et fonctions de colonnes EVI et les fonctions de colonnes (V7) CREATE ENCODED VECTOR INDEX SAMPLES.EVI_SUM ON SAMPLES.EMPLOYEE ( WORKDEPT ) INCLUDE ( COUNT ( * ), SUM ( SALARY ), SUM ( BONUS ) ) SELECT COUNT(*) FROM SAMPLES.EMPLOYEE WHERE WORKDEPT = C01 SELECT COUNT(distinct WORKDEPT) FROM SAMPLES.EMPLOYEE SELECT WORDEPT, SUM(BONUS), SUM(SALARY) FROM SAMPLES.EMPLOYEE Key Value Code Count Sum(Salary) Sum(bonus) A , ,00 B , , E , ,00 13

14 Index avec clés dérivées Ce type d index est apparu en V6R1 Permet de faire apparaitre des expressions dans les colonnes clés Utilisé dans le cas de recherche en fonction de la casse Données extraites à partir de chaine de caractères ( SUBSTR, YEAR, MONTH, ) Colonnes de groupage dérivées (GROUP BY YEAR(), ) Résultats de calculs ((PU + HT), (QUANTITE * PU),..) CREATE INDEX LASTNAMEUPPER ON SAMPLES.EMPLOYEE (UPPER(LASTNAME)) as ULASTNAME ASC) CREATE ENCODED VECTOR INDEX YEARQTR ON SAMPLES.EMPLOYEE (YEAR(BIRTHDATE) as BIRTHYEAR ASC, QUARTER(BIRTHDATE) as BIRTHQ) CREATE INDEX TOTALBONUS ON SAMPLES.EMPLOYEE ((SALARY + BONUS) * 13 as TOTALANNUEL) 14

15 Index avec sélection Ce type d index apparait en V6R1 et permet de remplacer les fichiers logiques A partir de la V7R1, ce type d index est utilisable par l optimiseur CREATE INDEX SAMPLES.WORKDEPT_SELECT ON SAMPLES.EMPLOYEE (WORKDEPT ASC) WHERE WORDEPT in ('D11', 'E11') 15

16 Création d index Via SQL CREATE INDEX Via Sytem i Navigator 16

17 Création d index 17

18 Création d index 18

19 Choisir le bon type d index Le choix du type d index est fonction de la cardinalité des occurrences pour la valeur des colonnes de zones clés Haute cardinalité : nombre élevé de valeurs distinctes Faible cardinalité : nombre faible de valeurs distinctes. En général Un index de type «Radix» est le meilleur choix si la cardinalité est élevée et que le nombre d occurrences à traiter est faible Un index de type «EVI» est le meilleur choix afin d accéder à un lot d occurrences avec de faibles cardinalités 19

20 DB2 for i et l usage des index DB2 for i s appuie sur les index afin de fournir les méthodes et les statistiques permettant de fournir au plus vite les résultats Au cours du processus d optimisation, DB2 for i examine tous les index pertinents afin de réaliser la requête Soit la requête suivante SELECT COL1 where COL2 = XXX order by COL3 Un index comportant COL1 est sans intérêt pout l optimiseur (pas de statistiques ou de méthode d exécution) Un index comportant COL2 ou COL3 en clé principale pourra être envisagé afin d activer un usage de type «Probe» 20

21 Les différentes méthodes d accès aux données La méthode d'accès la plus rapide pour une table variera en fonction de la sélectivité et du nombre d occurrences par valeur distincte Sur la base des 101 département, la répartition dans la table des clients ne sera pas de 1/101 par département C est le rôle des statistiques que de fournir ces informations 21

22 Rôles des statistiques Plus la sélectivité est importante, plus la présence d un index est primordiale L'objectif de l'optimiseur est de choisir une mise en œuvre éliminant les lignes qui ne sont pas intéressantes ou pas nécessaires. Pour ce faire : L optimiseur DB2 utilise les informations statistiques des index afin de «comprendre les données» stockées dans les tables sousjacentes Cette compréhension des données permet à l'optimiseur trouver la méthode d'accès aux données la plus efficace Les index Radix et les EVI contiennent des informations sur le nombre de valeurs distinctes dans une colonne, ainsi que la distribution des dites valeurs 22 Réglage via la valeur système QDBFSTCCOL (*ALL, *SYSTEM, *USER, *NONE)

23 Détail des statistiques Le détail des statistiques est accessible via System i Navigator 23

24 Méthode d accès aux données En fonction de la sélectivité, DB2 pourra mettre en œuvre : Un index «Probe» Un index «Scan» Un Table «Scan» 24

25 Analyse d une requête SQL inefficace Il faut rechercher et éliminer : Les analyses complètes de table (Full table «Scan») Les analyses complètes d index (Full index «Scan») Les constructions d index temporaires L usage en V6R1 du moteur CQE 25

26 Requête SQL La vie d une requête SQL 26

27 Optimisation DB2 et outils d analyse Outil d analyse SQE Plan Cache Requête SQL Optimisation SQE Plan Cache Snapshot Visual Explain CQE/SQE Performance Moniteur 27

28 Optimisation DB2 Lors de l exécution d une requête, l optimiseur réalise les opérations suivantes : Rassemblement des informations sur les métadonnées et les statistiques afin d établir le coût d exécution Statistiques de sélectivité Détermination des index disponibles pour chiffrer les coûts Tri des index en fonction de leur pertinence Détermination des attributs d exécution pouvant affecter le coût Génération d un coût par défaut Permet d établir un plan d'accès associé avec le plan par défaut Et ce pour chaque index 28 Recueil des renseignements nécessaires spécifiques à l'index Construction d un plan d'accès basé sur cet index Chiffrage du coût de l'utilisation de cet index avec le plan d'accès Comparaison du coût obtenu avec le coût le plus bas trouvé précédemment Répétition de cette opération afin de trouver le coût le plus bas

29 Outil de conseil à la construction des index L optimiseur va enregistrer les index conseillés dans un fichier. Fichier SYSIXADV de QSYS2 Ces conseils sont établis aussi bien pour le moteur CQE que pour le moteur SQE CQE Conseils basiques (Table scan et sélection uniquement) Index «Radix» uniquement Index temporaires Visual Explain est susceptible de proposer de meilleurs index SQE Conseils évolués Index de type «Radix» et «EVI» Basés sur la requête complète Plusieurs index proposés pour la même requête Quelques limitations 29

30 Outil de conseil à la construction des index Fournit des informations sur Sélections locales Jonctions Group by Order by Propose des index sur Sélection en égalité, suivi par inégalité («Probe») Conseil limité avec des OR sur des colonnes différentes Pas d index dérivé Pas d EVI avec des fonctions d agrégations Les conseils sont nombreux mais pas obligatoires 30

31 Visualisation Index Advisor 31

32 Visualisation index Advisor Clic Bouton droit permet d appeler la boite de dialogue permettant la création d index, avec le type d index et les colonnes clés renseignées 32

33 Usage des index Les informations d utilisation des index présents sont accessibles : Via System i Navigator Via IBM Navigator for i Au sein du catalogue DB2 33

34 Visualisation d informations index 34

35 Visualisation d informations index Permet d accéder aux informations suivantes : 35

36 Information sur les index Permet en particulier d analyser l utilisation de celui-ci 36

37 Le catalogue Les vues suivantes contiennent les informations visualisées au travers de System i Navigator Vue Description SYSINDEXSTAT Une ligne par index, fournit des informations identiques à System i Navigator SYSPATITIONINDEXES Une ligne par index. A utiliser afin d obtenir des informations complémentaires sur les index SYSTABLEINDEXSTAT Une ligne par index. A utiliser afin d obtenir des informations complémentaires sur les index et les membres sous jacents 37

38 L indexation autonome L optimiseur peut demander à DB2 de créer un ou plusieurs index temporaires, complets ou dérivés Les index temporaires (SQE) sont maintenus mais détruits à l IPL CQE Les index temporaires ne sont ni partageables, ni réutilisables Gains potentiels à les créer. SQE Les index temporaires sont réutilisables et partageables Leur création est dépendante : Du nombre d exécutions de la requête Des conseils propres à l optimiseur Les index temporaires ont une maintenance de chemins d accès «Delay» quand les curseurs associés sont fermés 38

39 Plan Cache Le moteur SQE stocke le plan d exécution de toutes les requêtes au sein d un cache unique Chaque plan contient des métadonnées ainsi que des informations d exécution Le Plan cache est considéré comme un objet temporaire Le Plan Cache est localisé dans le pool mémoire *BASE Le Plan Cache permet de repartir d un plan d accès déjà établi et ce pour une requête donnée 39

40 Plan Cache Informations générales sur le plan cache Toujours actif Mise en œuvre automatique Sa taille peut être fixée Si la taille est atteinte => bouclage N est utilisé que par le moteur SQE Interface graphique via System i Navigator Accès Filtres Analyse par heure, Job, instructions Explicitation via Visual Explain Données volatiles Les informations du plan cache sont vivantes Le plan cache est remis à blanc à chaque l IPL 40

41 Plan Cache Propriétés Les propriétés du Plan Cache sont visualisables via System i Navigator 41

42 Plan Cache Propriétés Les instructions du Plan Cache sont visualisables via System i Navigator Click bouton droit sur une instruction pour lancer Visual Explain 42

43 Visual Explain Visual Explain permet d afficher une représentation graphique du plan de la requête. Il permet de : Visualiser les objets ainsi que les structures de données Visualiser les méthodes et stratégies mises en œuvre Présenter les informations associées à l environnement d exécution Fournir des conseils sur les index à construire Fournir des conseil sur les statistiques à collecter Cet outil est accessible au travers de l interface System i Navigator Il permet d analyser Le Plan Cache SQE Les Snapshots du Plan Cache Les moniteurs de performances base de données Le détail d un job 43

44 Visual Explain 44

45 Visual Explain Suivi temps réel d une exécution 1/2 45

46 Visual Explain Suivi temps réel d une exécution 2/2 46

47 SQL Détail d un job Clic bouton pour lancer Visual Explain 47

48 Méthodologie d indexation Suivant les paramètres de la requête, l optimiseur mettra en en œuvre les aspects suivants Si présence de Sélection Table «Scan» Table «Probe» Index «Scan» Index «Probe» Si présence de Jonction Nested loop join with index (Jointure en boucle avec index) Nested loop join with hashing (Jointure en boucle avec hachage) Nested loop join with sort list (Jointure en boucle avec liste de tri) Si présence de Group by Grouping avec Index (Agrégation) Grouping avec hachage Si présence de Order by Index Tri 48

49 Stratégie d indexation Deux approches pour créer les index : Une approche proactive Une approche réactive L approche proactive consiste à bâtir les index sur la base du modèle de données (MCD) Mise en œuvre contraintes de clés Primaires, Uniques et Etrangères. Communément, les colonnes utilisées dans les sélections ainsi que les colonnes dépendantes, en relation, en corrélation. Communément, les colonnes utilisées dans les jonctions. Communément, les colonnes utilisées dans le groupage 49

50 Stratégie d indexation Méthode réactive. L'objectif d'une stratégie d'indexation est de donner à l'optimiseur de requêtes les deux éléments suivants : Informations sur les données contenues dans les table telles que : Le nombre de valeurs distinctes, La répartition des valeurs de données, Le nombre moyen de valeurs en double. Choix concernant les méthodes à utiliser pour traiter la requête. Le choix dépend du résultat souhaité (Batch, Interactif, Optimize for all rows, ) 50

51 Stratégie d indexation basique Index de type «RADIX» Sélection de colonnes minimum Jonction de colonnes Sélection de colonnes + colonnes de jonction Sélection de colonnes + colonnes de groupage Sélection de colonnes + colonnes de tri Index de type «EVI» Sélection local avec AND / OR Jonction de colonnes Fonctions (Distinct, Count, SUM,..) Privilégier la sélectivité, mettre les colonnes en égalité en premier 51

52 Stratégie d indexation Soit la requête suivante : Select b.col1, b.col2, a.col1 From table1 a inner join table2 b on (a.join_col = b.join_col) (Jonction) Where b.col3 = quelques valeurs (Sélection) and b.col2 = 9999 Group by c.col1, b.col2, a.col1 Order by b.col1 Avec une requête de ce type les règles sont : 2 index Radix sur les colonnes de jonction (a.join_col et b.join_col) Sélection 2 index Radix sur les colonnes de sélection (b.col3 et b.col2) dès lors quelles sont utilisées dans d autres requêtes comme critères de sélection. Ou bâtir deux index EVI sur les colonnes b.col3 et b.col2 dès lors que les colonnes de sélection ne sont pas uniques et que le nombre d occurrences pour chacune est relativement faible. 52

53 Index de type Radix Dans un index l ordre des colonnes est important Classer les colonnes d égalité en premier (permet d activer la sélectivité) Si tous les prédicats utilisés sont en égalité Colonnes de sélection + colonnes de jonction Colonnes de sélection + colonnes de groupage Colonnes de sélection + colonnes de tri Mettre la colonne à sélectivité la plus élevée en premier Select col1, col2, col3 from table where col4 = 2014 and col5 = 3 and col6 = T order by col1, col2 L index à créer comportera les colonnes de sélection (col4, col5, col6) suivies des colonnes de tri col1 et col2 L ordre des colonnes de sélection devra être choisi en fonction de la sélectivité 53

54 Index parfait de type Radix/Index Only Access IOA Index Parfait : inclure dans l index les colonnes souhaitées Select nom, srv from employes order by nom Index sur nom Création d un index IOA «Only Access» CREATE INDEX ESALIB.INDEX_PARFAIT ON ESALIB.EMPLOYES (SRV ASC, NOM ASC ) Récupération de l ensemble des informations au sein de l index => plus besoin de test de table 54

55 Illustration : SELECT partkey, shipmode FROM item_fact WHERE orderkey=1 ORDER BY partkey Index sur orderkey 55

56 Illustration mise en œuvre index parfait SELECT partkey, shipmode FROM item_fact WHERE orderkey=1 ORDER BY partkey CREATE INDEX DB2IPFR/INDEX_PARFAIT DB2IPFR/ITEM_FACT ( ORDERKEY ASC, PARTKEY ASC ) Durée estimée Sans index Index de base Index parfait 56 : ms : 25 ms : 19 ms

57 Illustration mise en œuvre index parfait Only Access SELECT partkey, shipmode FROM item_fact WHERE orderkey=1 ORDER BY partkey CREATE INDEX DB2IPFR.INDEX_IOA ON DB2IPFR.ITEM_FACT (ORDERKEY ASC, PARTKEY ASC, SHIPMODE ASC) Durée estimée 57 Sans index Index de base Index parfait Index parfait Only access : ms : 25 ms : 19 ms : 1 ms

58 Exemples Requête 1 SELECT * FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR) Ou CREATE ENCODED VECTOR INDEX TABLE1_EVI1 ON TABLE1 (COLOR) Anticipe un index probe ou table probe avec bitmap dynamic Requête 2 SELECT * FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) AND A.SIZE IN ( LARGE, X-LARGE ) CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE) Ou CREATE ENCODED VECTOR INDEX TABLE1_EVI1 ON TABLE1 (COLOR) CREATE ENCODED VECTOR INDEX TABLE1_EVI2 ON TABLE1 (SIZE) Anticipe un index probe ou table probe avec bitmap dynamic 58

59 Exemples Requête 3 SELECT * FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) AND A.SIZE IN ( LARGE, X-LARGE ) AND A.STYLE = ADULT MENS T-SHIRT CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE, STYLE) Ou CREATE ENCODED VECTOR INDEX TABLE1_EVI1 ON TABLE1 (COLOR) CREATE ENCODED VECTOR INDEX TABLE1_EVI2 ON TABLE1 (SIZE) CREATE ENCODED VECTOR INDEX TABLE1_EVI3 ON TABLE1 (STYLE) Anticipe un index probe ou table probe avec bitmap dynamic 59

60 Exemples Requête 4 SELECT * FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) AND A.SIZE IN ( LARGE, X-LARGE ) AND A.STYLE = ADULT MENS TSHIRT AND A.INVENTORY > 100 CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE, STYLE, INVENTORY) Ou CREATE ENCODED VECTOR INDEX TABLE1_EVI1 ON TABLE1 (COLOR) CREATE ENCODED VECTOR INDEX TABLE1_EVI2 ON TABLE1 (SIZE) CREATE ENCODED VECTOR INDEX TABLE1_EVI3 ON TABLE1 (STYLE) CREATE ENCODED VECTOR INDEX TABLE1_EVI4 ON TABLE1 (INVENTORY) Anticipe un index probe ou table probe avec bitmap dynamic 60

61 Exemples Requête 5 SELECT * FROM TABLE1 A, TABLE2 B WHERE A.KEY = B.KEY AND A.COLOR IN ( BLUE, GREEN, RED ) AND A.SIZE IN ( LARGE, XLARGE ) AND A.STYLE = ADULT MENS T-SHIRT AND A.INVENTORY > 100 CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE, STYLE, KEY, INVENTORY) CREATE INDEX TABLE2_INDEX1 ON TABLE2 (KEY) Et/Ou CREATE ENCODED VECTOR INDEX TABLE1_EVI1 ON TABLE1 (COLOR) CREATE ENCODED VECTOR INDEX TABLE1_EVI2 ON TABLE1 (SIZE) CREATE ENCODED VECTOR INDEX TABLE1_EVI3 ON TABLE1 (STYLE) CREATE ENCODED VECTOR INDEX TABLE1_EVI4 ON TABLE1 (INVENTORY) Anticipe un index probe ou table probe avec bitmap dynamic et jointure de boucle imbriquée avec index 61

62 Exemples Requête 6 SELECT A.STORE, A.STYLE, A.SIZE, A.COLOR SUM(A.QUANTITY_SOLD) FROM TABLE1 A, TABLE2 B WHERE A.KEY = B.KEY AND A.COLOR IN ( BLUE, GREEN, RED ) AND A.SIZE IN ( LARGE, X-LARGE ) AND A.STYLE = ADULT MENS T-SHIRT GROUP BY A.STORE, A.STYLE, A.SIZE, A.COLOR CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE, STYLE, KEY) CREATE INDEX TABLE1_INDEX2 ON TABLE1 (STORE, STYLE, SIZE, COLOR) CREATE INDEX TABLE2_INDEX1 ON TABLE2 (KEY) Et/ou CREATE ENCODED VECTOR INDEX TABLE1_EVI1 ON TABLE1 (COLOR) CREATE ENCODED VECTOR INDEX TABLE1_EVI2 ON TABLE1 (SIZE) CREATE ENCODED VECTOR INDEX TABLE1_EVI3 ON TABLE1 (STYLE) Anticipe un index probe ou table probe avec bitmap dynamic et jointure de boucle imbriquée avec index 62

63 Exemples Requête 7 SELECT A.COL3, A.COL4, B.COL2, C.COL6, C.COL7 FROM TABLE1 A, TABLE2 B, TABLE3 C WHERE A.KEY_COL1 = B.KEY_COL1 AND A.KEY_COL2 = C.KEY_COL2 AND A.COLOR IN ( BLUE, GREEN, RED ) CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, KEY_COL1) CREATE INDEX TABLE1_INDEX2 ON TABLE1 (COLOR, KEY_COL2) CREATE INDEX TABLE2_INDEX1 ON TABLE2 (KEY_COL1) CREATE INDEX TABLE3_INDEX1 ON TABLE3 (KEY_COL2) Anticipe un index probe, jointure de boucle imbriquée avec index 63

64 Exemples Requête 8 SELECT A.COLOR, A.SIZE, SUM(A.SALES), SUM(A.QUANTITY) FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) GROUP BY A.COLOR, A.SIZE CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE) Anticipe un index probe, Grouping avec index Requête 9 SELECT A.COLOR, A.SIZE, SUM(A.SALES), SUM(A.QUANTITY) FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) GROUP BY A.COLOR, A.SIZE ORDER BY A.COLOR, A.SIZE CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE) Anticipe un index probe, Grouping avec index et Ordering avec index 64

65 Exemples Requête 10 SELECT A.COLOR, A.SIZE, MIN(A.QUANTITY) FROM TABLE1 A WHERE A.COLOR IN ( BLUE, GREEN, RED ) GROUP BY A.COLOR, A.SIZE CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE, QUANTITY) Anticipe un index probe, Grouping avec index et traitement du MIN 65

66 Exemples Requête 11 SELECT A.COLOR, A.SIZE, A.SALES FROM TABLE1 A WHERE A.SALES < (SELECT AVG(B.SALES) FROM TABLE1 B WHERE B.SIZE IN ( LARGE, X-LARGE )) AND A.COLOR IN ( BLUE, GREEN, RED ) AND A.SIZE IN ( LARGE, X-LARGE ) CREATE INDEX TABLE1_INDEX1 ON TABLE1 (SIZE, COLOR) Anticipe un index probe, Grouping avec index et, comme SIZE est la première colonne de la clé, l index peut être utilisé pour les jonctions INNER ou OUTER 66

67 Exemples Requête 12 SELECT A.COLOR, A.SIZE, SUM(A.SALES), SUM(A.QUANTITY) FROM TABLE1 A GROUP BY B.COLOR, B.SIZE CREATE INDEX TABLE1_INDEX1 ON TABLE1 (COLOR, SIZE) Anticipe Grouping avec index et index Parfait (toutes les colonnes référencées sont dans l index) 67

68 Exemples Requête 13 SELECT A.CUSTOMER, A.CUSTOMER_NUMBER, A.YEAR, A.MONTH, A.SALES FROM TABLE1 A WHERE A.SALES > (SELECT AVG(B.SALES) FROM TABLE1 B WHERE B.CUSTOMER = A.CUSTOMER AND B.YEAR = A.YEAR) AND YEAR = 2012 CREATE INDEX TABLE1_INDEX1 ON TABLE1 (YEAR, CUSTOMER, SALES) Anticipe index probe et index (SUBQUERY), l index est utilisé par les deux requêtes. 68

69 Exemples Requête 14 SELECT T.CHAR_DATE, C.COUNTRY, C.CUSTOMER_NAME, P.PART_NAME,.SUPPLIER_NAME, SUM(F.QUANTITY), SUM(F.REVENUE_WO_TAX) FROM STARLIB/SALES_FACTS F, STARLIB/PART_DIM P, STARLIB/TIME_DIM T, STARLIB/CUST_DIM C, STARLIB/SUPP_DIM S WHERE F.PARTKEY = P.PARTKEY AND F.TIMEKEY = T.TIMEKEY AND F.CUSTKEY = C.CUSTKEY AND F.SUPPKEY = S.SUPPKEY AND T.YEAR = 2000 AND T.MONTH = 06 AND T.DAY = 30 AND C.COUNTRY = FRANCE AND P.MFGR = 'Manufacturer#3' GROUP BY T.CHAR_DATE, C.COUNTRY C.CUSTOMER_NAME, P.PART_NAME, S.SUPPLIER_NAME ORDER BY T.CHAR_DATE, C.COUNTRY,C.CUSTOMER_NAME, P.PART_NAME CREATE INDEX SALES_FACTS_INDEX1 ON SALES_FACTS (PARTKEY) CREATE INDEX SALES_FACTS_INDEX2 ON SALES_FACTS (TIMEKEY) CREATE INDEX SALES_FACTS_INDEX3 ON SALES_FACTS (CUSTKEY) CREATE INDEX SALES_FACTS_INDEX4 ON SALES_FACTS (SUPPKEY) CREATE INDEX PART_DIM_INDEX1 ON PART_DIM (MFGR, PARTKEY, PART_NAME) CREATE INDEX TIME_DIM_INDEX1 ON TIME_DIM (YEAR, MONTH, DAY, TIMEKEY) CREATE INDEX CUST_DIM_INDEX1 ON CUST_DIM (COUNTRY, CUSTKEY) CREATE INDEX SUPP_DIM_INDEX1 ON SUPP_DIM (SUPPKEY, SUPPLIER_NAME) Anticipe Index Probe, Index lecture seules, jointure en boucle imbriquée 69

70 Stratégie d indexation Si l optimiseur via Visual Explain rapporte : Un Full Table Scan Créer un Index sur les colonnes de sélections Un full Index Scan Créer un Index permettant la mise en œuvre d un Probe Un index temporaire Créer un index sur les colonnes de Jonction Créer un index sur les colonnes de Groupage Créer un index sur les colonnes d Order By Une table de Hachage Créer un index sur les colonnes de Jonction Créer un index sur les colonnes de Groupage 70

71 Trop d index Attention le coût de maintenance des index croit linéairement avec le nombre d index 71

72 Indexer ou ne pas Indexer? Pour de meilleurs performances, créer les index appropriés Eliminer au maximum les lectures de tables et les index temporaires Eventuellement, supprimer les index avant de faire de grosses modification de données Supprimer les index lors de l insertion dans une table vide. Supprimer les index et les recréer si plus de 40 % des lignes sont impactées Envisager l acquisition de 5770SS1 option 26 (DB2 Symmetric Multi Processing) Temps (INSERT + CREATION d INDEX) < Temps (INSERT + MAINTENANCE d INDEX) 72

73 Performances Prendre en compte les nouveautés d indexation apparues en V6R1 Gérer les index, créer ceux qui vont améliorer les performances et supprimer les index inutilisés Moderniser vos bases de données afin de profiter des augmentations des tailles de page Réorganiser vos tables si présence d enregistrements supprimés en grande quantité Si utilisation de colonnes de type VARCHAR, positionner la taille allouée à la bonne valeur 73

74 Performances Eviter l usage du Force Ratio Utiliser les fonctions OLAP type Grouping SET (permet le groupage sur des colonnes différentes en une seule requête) Implémenter l intégrité référentielle Penser à utiliser les clauses FOR READ ONLY FOR UPDATE OF FETCH FIST N ROWS ONLY OPTIMIZE FOR n/all ROWS Utiliser l OVRDBF Eviter le LIKE avec le % en première position.. LIKE %TEST% Eviter Select *, nommer les colonnes. Proscrire l utilisation des logiques 74

75 Performances Savoir distinguer une instruction lourde optimisée, d une instruction non optimisée mais répétitive S1 : 5000 exécutions à 1 s = 5000 secondes S2 : 500,000 exécution à 10 ms = 5000 secondes Optimisation de S2 10 ms à 1 ms = 500 secondes Optimiser au maximum les requêtes répétitives ainsi que les requêtes lourdes Disposer d un pool privé pour les travaux serveurs BD (QZDASOINIT, QSQSRVR, ) Si suffisamment de RAM activer l expert Cache Si l ajustement de performance est en fonction : Caper ce pool en pourcentage et priorité. Régler les valeurs systèmes QQRYDEGREE QDBFSTCCOL Envisager l acquisition de SMP 75

76 Utiliser les MQT Les MQT permettent de créer des tables comportant les données extraites par la requête Possibilité d exécuter des requêtes au travers des MQT Les MQT sont mises à jour via l ordre SQL REFRESH TABLE CREATE TABLE SAMPLES.SALAIRE_BY_WOKDEPT AS (select workdept, sum(salary) as salaire from samples.employee group by workdept) DATA INITIALLY IMMEDIATE REFRESH DEFERRED MAINTAINED BY USER Refresh table SAMPLES.SALAIRE_BY_WOKDEPT 76

77 Moderniser vos logiques Modifier la taille des chemins d accès des logiques en les portant à 64 K Paramètre PAGESIZE de la commande CRTLF CRTLF ACCPTHSIZ(*MAX1TB) PAGESIZE(64) SELECT INDEX_NAME as Logique nl, case when SYSTEM_INDEX_NAME is not null then SYSTEM_INDEX_NAME else INDEX_NAME end as Logique nc, case when index_partition is not null then index_partition else INDEX_NAME end as Membre logique, index_schema as Schéma Logique, QUERY_STATISTICS_COUNT Nb util. optim., QUERY_USE_COUNT as Nb util. exec., LAST_STATISTICS_USE as Date dernière util. optim., LAST_QUERY_USE Date dernière util. exec., LOGICAL_PAGE_SIZE as Taille page logique, ACCPTH_TYPE as Taille CA FROM QSYS2.SYSPARTITIONINDEXES WHERE SYSTEM_TABLE_SCHEMA in ( NOMBIB') and INDEX_TYPE='LOGICAL order by index_name ; 77

Session S12 Les bases de l optimisation SQL avec DB2 for i

Session S12 Les bases de l optimisation SQL avec DB2 for i Session S12 Les bases de l optimisation SQL avec DB2 for i C. GRIERE cgriere@fr.ibm.com STG Lab Services IBM i Avril 2012 Les fleurs et les requêtes SQL Lorsque l on veut planter de nouvelles fleurs dans

Plus en détail

Les bases de l optimisation SQL avec DB2 for i

Les bases de l optimisation SQL avec DB2 for i Les bases de l optimisation SQL avec DB2 for i Christian GRIERE cgriere@fr.ibm.com Common Romandie 3 mai 2011 Les fleurs et les requêtes Lorsque l on veut planter de nouvelles fleurs dans un jardin il

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

La présente publication est protégée par les droits d auteur. Tous droits réservés.

La présente publication est protégée par les droits d auteur. Tous droits réservés. Editeur (Medieninhaber/Verleger) : Markus Winand Maderspergerstasse 1-3/9/11 1160 Wien AUSTRIA Copyright 2013 Markus Winand La présente publication est protégée par les droits d auteur.

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise SQL Serveur 2012+ Programme de formation France Belgique Suisse - Canada Microsoft Partner Formez vos salariés pour optimiser la productivité de votre entreprise Dernière mise à jour le : Avril 2014 Des

Plus en détail

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Optimisation de MySQL

Optimisation de MySQL Olivier DASINI Optimisation de MySQL http://dasini.net/blog/ 1 Votre conférencier Olivier DASINI Formateur certifié MySQL Consultant technologies Open Sources olivier@dasini.net 2 Au programme... Introduction

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Administration de Bases de Données : Optimisation

Administration de Bases de Données : Optimisation Administration de Bases de Données : Optimisation FIP 2 année Exercices CNAM Paris Nicolas.Travers(at) cnam.fr Table des matières 1 Stockagedans unsgbd 3 1.1 Stockage.............................................

Plus en détail

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!! DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!! Stéphane MICHAUX Philippe BOURGEOIS Christian GRIERE stephane_michaux@ibi.com pbourgeois@fr.ibm.com cgriere@fr.ibm.com Les

Plus en détail

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK Oracle Décisionnel : Modèle OLAP et Vue matérialisée SOMMAIRE Introduction Le modèle en étoiles Requêtes OLAP Vue matérialisée Fonctions Roll up et Cube Application Introduction Data Warehouse Moteur OLAP

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre

Plus en détail

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Thème : Gestion commerciale

Thème : Gestion commerciale Département Génie Informatique BD40 Ingénierie des systèmes d information TP 4 : Ms/Access : Listes déroulantes, Formulaires avancés Thème : Gestion commerciale Christian FISCHER Copyright Novembre 2005

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Sybase Adaptive Server Enterprise 15

Sybase Adaptive Server Enterprise 15 Sybase Adaptive Server Enterprise 15 Prêt pour Sybase Adaptive Server Enterprise 15? Novembre 2006 Documentation technique # 29 Introduction Cette présentation liste les fonctionnalités importantes de

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...) Avant-propos 1. À qui s'adresse ce livre? 15 2. Pré-requis 15 3. Objectifs du livre 16 4. Notations 17 Introduction à la Business Intelligence 1. Du transactionnel au décisionnel 19 2. Business Intelligence

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création Construction d un EDD avec SQL 2008 R2 Plan Analyse du DW construit Construction de la base DW dans SQL 2008 Construction des tables de faits et dimensions Injection des données Étapes de l injection des

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Cours 4 : Agrégats et GROUP BY

Cours 4 : Agrégats et GROUP BY Cours 4 : Agrégats et GROUP BY Agrégat Fonction qui effectue un calcul sur l ensemble des valeurs d un attribut pour un groupe de lignes Utilisation dans une clause SELECT ou dans une clause HAVING 3 types

Plus en détail

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail

FileMaker 13. Guide de référence SQL

FileMaker 13. Guide de référence SQL FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

ORACLE TUNING PACK 11G

ORACLE TUNING PACK 11G ORACLE TUNING PACK 11G PRINCIPALES CARACTÉRISTIQUES : Conseiller d'optimisation SQL (SQL Tuning Advisor) Mode automatique du conseiller d'optimisation SQL Profils SQL Conseiller d'accès SQL (SQL Access

Plus en détail

S8 - Sécurité IBM i : nouveautés 6.1 et 7.1

S8 - Sécurité IBM i : nouveautés 6.1 et 7.1 Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014 13 et 14 mai 2014 IBM Client Center Paris, Bois-Colombes S8 - Sécurité IBM i : nouveautés 6.1

Plus en détail

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015 Benjamin Lampérier - Benoît Goyheneche RMLL 2015 - Beauvais 8 Juillet 2015 1 2 3 État des lieux On ne change rien On optimise intelligemment Avant de commencer Mettre les chaines de caractères entre simple

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

Introduction aux Bases de Données 2004/2005

Introduction aux Bases de Données 2004/2005 Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil

Plus en détail

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Bases de Données Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Synthèse : conception de BD langage de modélisation famille de SGBD SGBD Analyse du

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

Présentation Windows Azure Hadoop Big Data - BI

Présentation Windows Azure Hadoop Big Data - BI Présentation Windows Azure Hadoop Big Data - BI Sommaire 1. Architecture Hadoop dans Windows Azure... 3 2. Requête Hive avec Hadoop dans Windows Azure... 4 3. Cas d études... 5 3.1 Vue : Administrateur...

Plus en détail

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Master Exploration Informatique des données DataWareHouse

Master Exploration Informatique des données DataWareHouse Master Exploration Informatique des données DataWareHouse Binôme Ahmed BENSI Enseignant tahar ARIB SOMMAIRE I. Conception...1 1. Contexte des contrats...1 2. Contexte des factures...1 II. Modèle physique...2

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services Nous verrons dans cet article comment exploiter simplement les données de Log de SQL Server 2008 R2 Reporting Services

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Description de SQL SERVER. historique

Description de SQL SERVER. historique Description de SQL SERVER SQLServer est un SGBDR qui accepte et traite des requêtes concurrentes provenant de divers clients. Il envoie les réponses aux clients concernés via des API (Application Programming

Plus en détail

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services Ce Whitepaper décrit la méthodologie de développement d un rapport personnalisé au format SQL Server Reporting Service (SSRS) appliqué à System Center Operations Manager (SCOM) Whitepaper Méthodologie

Plus en détail

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes) Avant-propos 1. Lectorat 11 2. Pré-requis 12 3. Objectifs 12 4. Environnement technique 13 Choisir la bonne architecture matérielle 1. Introduction 15 2. Architecture disque 16 2.1 La problématique de

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Modernisation et développement d applications IBM i Technologies, outils et nouveautés 2012/2013. Volubis.fr

Modernisation et développement d applications IBM i Technologies, outils et nouveautés 2012/2013. Volubis.fr Modernisation et développement d applications IBM i Technologies, outils et nouveautés 2012/2013 8 et 9 Avril 2013 IBM Forum de Bois-Colombes Volubis.fr Conseil et formation sur OS/400, I5/OS puis IBM

Plus en détail

Cours SQL. Base du langage SQL et des bases de données

Cours SQL. Base du langage SQL et des bases de données Cours SQL Base du langage SQL et des bases de données Auteur Tony Archambeau Site web http://sql.sh Date 24 mai 2014 Licence Mis à disposition selon les termes de la licence Creative Commons Attribution

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014. Volubis.fr

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014. Volubis.fr Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014 13 et 14 mai 2014 IBM Client Center Paris, Bois-Colombes Volubis.fr Conseil et formation sur OS/400,

Plus en détail

Systèmes de Gestion de Bases de Données

Systèmes de Gestion de Bases de Données Systèmes de Gestion de Bases de Données Luiz Angelo STEFFENEL DUT Informatique 2ème année IUT Nancy Charlemagne Vues Vue : une table virtuelle de la base de données dont le contenu est défini par une requête

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Définition (G. Gardarin) Entrepôt : ensemble de données historisées variant

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013

BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 TS2 CGO 7 mars 2013 2 heures Aucun document autorisé Calculatrice autorisée Nota : Il vous est demandé d apporter un soin particulier à la présentation de

Plus en détail

Bases de données multidimensionnelles et mise en œuvre dans Oracle

Bases de données multidimensionnelles et mise en œuvre dans Oracle Bases de données multidimensionnelles et mise en œuvre dans Oracle 1 Introduction et Description générale Les bases de données relationnelles sont très performantes pour les systèmes opérationnels (ou

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA DEFINITION D UNE BIBLIOTHEQUE D ACCES A UNE BASE DE DONNEES Cet article s adresse aux administrateurs SAS en charge de la mise à disposition des

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/26 Bases de Données Avancées DataWareHouse Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin,

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail