• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
10
0
0

Texte intégral

(1)

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 la Flash Recovery Area 16

2.2 L’architecture RAID 16

2.3 Nombre et types de disques 19

2.4 L’architecture ASM 20

3. Architecture CPU 21

4. Architecture mémoire 22

5. Architecture réseau 23

Optimisation des entrées/sorties

1. Introduction 25

(2)

2. Les process Oracle d’arrière-plan générant des entrées/sorties 25

2.1 LGWR 26

2.2 DBWn 27

2.3 CKPT 29

2.4 ARCn 31

3. Surveillance des activités d’entrées/sorties 31

4. Impact des sauvegardes sur les activités d’entrées/sorties 32

5. Tirer parti de l'architecture ASM 33

Optimisation de la mémoire

1. Introduction 35

2. Mémoire système et mémoire Oracle 35

3. Les composants de la mémoire 36

3.1 La SGA (System Global Area) 36

3.2 La PGA (Program Global Area) 52

3.3 L’UGA (User Global Area) 52

4. Serveur dédié ou partagé 53

5. Gestion manuelle ou automatique 53

5.1 Le paramètre MEMORY_TARGET 54

5.2 Le paramètre SGA_TARGET 61

5.3 Le paramètre PGA_AGGREGATE_TARGET 64

6. Impact des procédures externes 65

(3)

Optimisation du stockage des données

1. Introduction 67

2. La taille des blocs de données 67

3. Les tablespaces SYSTEM et SYSAUX 69

4. Les tablespaces de données 72

4.1 Les tablespaces gérés par le dictionnaire 72

4.2 Les tablespaces gérés localement 73

4.3 Les tablespaces bigfile 75

5. Les tablespaces temporaires 76

6. Les tablespaces d'annulation 77

7. Les tables 79

7.1 Les tables en pile (heap tables) 79

7.2 Les tables IOT (Index Organized Tables) 87

7.3 Les tables partitionnées 88

7.3.1 Le partitionnement par plage (range partitioning) 88 7.3.2 Le partitionnement par intervalle (interval partitioning) 90 7.3.3 Le partitionnement par liste (list partitioning) 93 7.3.4 Le partitionnement sur colonne virtuelle (virtual column-based partitioning) 94 7.3.5 Le partitionnement par hachage (hash partitioning) 95 7.3.6 Le partitionnement par référence (reference partitioning) 95 7.3.7 Le partitionnement composite (composite partitioning) 97 7.3.8 Le partitionnement système (system partitioning) 98

8. Les index 99

8.1 Les index de type b-tree 99

8.2 Les index de type bitmap 114

(4)

8.3 Les index de texte 115

8.4 Les index et le partitionnement 127

9. Les segments de type LOB 130

Les statistiques d’optimisation

1. Introduction 133

2. Les différents types de statistiques d'optimisation 134

2.1 Les statistiques de données 134

2.1.1 Les statistiques sur les tables 134

2.1.2 Les statistiques sur les colonnes 134

2.1.3 Les statistiques sur les index 135

2.1.4 Les statistiques du dictionnaire 135

2.2 Les statistiques du système 135

3. La collecte des statistiques de données 136

3.1 La collecte automatique des statistiques 136

3.1.1 Principe de fonctionnement 136

3.1.2 Activation 137

3.1.3 Désactivation 142

3.1.4 Préférences 143

3.2 La collecte manuelle des statistiques de données 152

3.2.1 Utilité 152

3.2.2 Au niveau de la base de données 154

3.2.3 Au niveau du dictionnaire des données 156

3.2.4 Au niveau d'un schéma 158

3.2.5 Au niveau d'une table 159

3.2.6 Au niveau d'un index 160

4. La collecte des statistiques du système 161

4.1 En simulant une activité 161

(5)

4.2 En se basant sur l'activité réelle 162

5. Les statistiques étendues 163

6. La publication différée des statistiques 172

7. Le verrouillage des statistiques 175

7.1 Verrouillage des statistiques d'un schéma 175

7.2 Verrouillage des statistiques d’une table 175

8. La manipulation des statistiques 176

8.1 Purge des statistiques 176

8.2 Restauration des statistiques 176

8.2.1 Restauration des statistiques de système 176

8.2.2 Restauration des statistiques d’un schéma 177

8.2.3 Restauration des statistiques d’une table 177

8.3 Export et import des statistiques 178

8.4 Mise à jour directe des statistiques 179

L’optimisation SQL

1. Introduction 181

2. Recommandations générales sur l'écriture SQL 182

2.1 Écrire du SQL efficace 183

2.1.1 Ne pas rendre les index transparents 183

2.1.2 Privilégier les jointures 184

2.2 Limiter les appels de fonctions 188

2.2.1 Factoriser le code 188

2.2.2 Limiter l’éparpillement des requêtes SQL 189

3. Le plan et les statistiques d'exécution d'une requête 190

3.1 La fonctionnalité AUTOTRACE dans SQL*Plus 190

(6)

3.2 La commande EXPLAIN PLAN 193

3.3 L’utilitaire tkprof 196

3.4 SQL statique et SQL dynamique 202

3.4.1 Le SQL statique 203

3.4.2 Le SQL dynamique 220

3.5 Les lignes de base de plan SQL (SQL plan baselines) 249

4. L'échantillonnage dynamique 262

4.1 Paramétrage de l'échantillonnage dynamique 263

4.2 Les différents niveaux d'échantillonnage dynamique 273

5. Tirer parti des index 279

5.1 Les index de type b-tree 288

5.1.1 Indexation des clés étrangères 290

5.1.2 Les index invisibles 304

5.1.3 Les types d'accès indexés 304

5.1.4 Les index b-tree et les opérations de tri 318

5.1.5 Les index b-tree et les opérateurs booléens 326

5.2 Les index de type bitmap 328

5.3 Les index de textes 332

6. Les méthodes de jointure 333

6.1 NESTED LOOPS 333

6.2 HASH JOIN 334

6.3 MERGE JOIN 335

7. Paramètres d’optimisation 336

7.1 Optimizer_mode 336

7.2 Optimizer_features_enable 337

7.3 Optimizer_index_cost_adj 338

7.4 Optimizer_index_caching 340

7.5 Optimizer_secure_view_merging 340

8. Les conseils d’optimisation (hints) 340

(7)

9. La problématique des vues 342

10. Vues matérialisées et réécriture de requêtes 345

11. Les requêtes parallèles 349

12. Les requêtes distribuées sur plusieurs bases 351

Les événements d’attente et les verrous

1. Introduction 359

2. Le référentiel des événements d'attente 362

2.1 V$EVENT_NAME 362

2.2 V$SESSION_WAIT 363

2.3 V$SESSION_WAIT_HISTORY 369

2.4 V$SESSION_EVENT 370

2.5 V$SYSTEM_EVENT 371

2.6 V$SYSTEM_WAIT_CLASS 372

2.7 V$EVENT_HISTOGRAM 373

2.8 Visualisation des attentes dans Oracle Database Control 375

3. Les différentes classes d'événements d'attente 379

3.1 Administrative 379

3.2 Application 380

3.3 Cluster 382

3.4 Commit 382

3.5 Concurrency 383

3.6 Configuration 383

3.7 Idle 384

3.8 Network 384

3.9 Other 386

(8)

3.10 Queuing 386

3.11 Scheduler 387

3.12 System I/O 387

3.13 User I/O 388

4. La classe d'attente Application et les verrous 393

4.1 La vue DBA_LOCKS (ou DBA_LOCK) 394

4.2 Les verrous provoqués par les opérations DML 395

4.3 La vue V$LOCKED_OBJECT 398

4.4 Les différents types de verrous 402

4.4.1 Les verrous sur les lignes 402

4.4.2 Les verrous sur les tables 411

Le gestionnaire de ressources

1. Présentation générale de l’architecture 431

2. Les groupes de consommateurs 433

2.1 Les groupes de consommateurs définis par défaut 433

2.2 Création et administration des groupes de consommateurs 434

2.2.1 En ligne de commandes SQL 435

2.2.2 À l’aide de l’interface Oracle Database Control 439

3. Les plans de gestion de ressources 446

3.1 Les directives 447

3.2 Les types de ressources contrôlables 449

3.2.1 Les ressources CPU 450

3.2.2 Le nombre de sessions actives 450

3.2.3 Le degré de parallélisme 450

3.2.4 Le temps d’exécution estimé par opération 451

3.2.5 Le temps d’inactivité 451

3.2.6 Le temps d’inactivité en cas de blocage d’une autre session 451 3.2.7 Le volume de données d’annulation (undo data) 452

3.3 Création d’un plan simple 452

(9)

3.4 Création d’un plan complexe 455

4. Changement automatique de groupe de consommateurs 464

4.1 Pour toute la suite de la session en cours 465

4.2 Pour l’opération en cours 468

5. Mise en pause de l’instance de base de données 469

Outils et assistants d’optimisation

1. Introduction 471

2. Statspack 472

2.1 Installation 472

2.2 Capture des clichés 473

2.3 Les rapports Statspack 476

3. ASH (Automated Session History) 477

3.1 La vue V$ACTIVE_SESSION_HISTORY 477

3.2 Les rapports ASH 478

3.2.1 En ligne de commande 478

3.2.2 À travers Oracle Database Control 478

4. AWR (Automatic Workload Repository) 479

4.1 Les fonctionnalités d’AWR 479

4.2 Les clichés 479

4.3 Les lignes de base (baselines) 480

4.4 Les rapports AWR 483

4.4.1 En ligne de commande 483

4.4.2 À travers Oracle Database Control 484

4.5 Les vues du référentiel AWR 487

5. ADDM (Automatic Database Diagnostic Monitor) 487

(10)

5.1 Domaine d’analyse couvert 488

5.2 Les analyses et rapports ADDM 488

5.2.1 En ligne de commande, à travers le packageDBMS_ADVISOR 489 5.2.2 En ligne de commande, à travers le script addmrpt.sql 491

5.2.3 À travers Oracle Database Control 491

5.3 Les vues du référentiel ADDM 494

6. Le conseiller sur les segments 495

6.1 Périmètre de l’analyse 495

6.2 Exécution manuelle en ligne de commande 495

6.3 Exécution manuelle à travers Oracle Database Control 500

6.4 Exécution automatique 502

7. L’optimisation SQL 503

7.1 Les ensembles de réglages SQL 504

7.2 Le conseiller SQL Access Advisor 507

7.3 Le conseiller SQL Tuning Advisor 513

7.3.1 Fonctionnement du conseiller SQL Tuning Advisor 513

7.3.2 Le tuning SQL automatique 521

7.3.3 Les profils SQL 521

Index 523

Références

Documents relatifs

En étudiant les restes de la division par 32 des puissances de 7, montrer que si le couple (n , m) vérifie la relation (F) alors n est divisible par

Techniques opératoires : Addition, soustraction et multiplication : savoir effectuer ces opérations sous les 3 formes de calcul (mental, à la main, à la calculatrice), dans des

[r]

Déterminer la fonction dérivée des fonctions suivantes en ayant précisé auparavant l'ensemble sur lequel f

- pour coupler l’action à la perception ou l’information au mouvement sur la base de lois de contrôle. Quelles sources d’information

D’autres travaux ont montré que certains enfants présentant des diffi- cultés dans l’apprentissage du calcul manifestaient par ailleurs des troubles perceptivo-tactiles,

Was ferner die Integration der Gleichungen (2) anbelangt, so fiihrt der Umstand, dass man die dreifach periodischen Functionen Pl und P2 als Grenzfalle von

Zu jeder dieser Gruppen gehsrt tin System yon reeurrirenden Gleichungen der Form (26), mittelst dessen die Constanten A jeder zur Gruppe gehsrigen Function