Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/09/2011, 18h04   #1
 
Homme
Consultant
Inscription : mai 2006
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant

Informations forums :
Inscription : mai 2006
Messages : 16
Points : -1
Points : -1
Par défaut CREATION INDEX en mode parallel

Bonjour ,
Je souhaite créer un index volumineux 15Go sur une base oracle 9.2.0.1.
L'opération dure 7 heures !!!
Pour optimiser le temps de traitement , j'ai essayé de paralléliser (degré 4) l'opération en NOLOGGING biensûr :

Code :
1
2
3
4
5
SQL>ALTER session enable parallel DDL;
SQL>CREATE INDEX idx_cli
   ON CLI(CLI_ID , DEP_ID ,TYPE_ID)
PARALLEL 4
NOLOGGING;
mais aucune réponse SQL*Plus (blocage)
J'ai essayé de regarder dans v$session_longops : vide !!!!
Quelles paramètres à fixer pour faire fonctionner le // ?
une idée ? Merci.
Pour info : parallel_max_servers = 5
devkais est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 12h59   #2
Membre expérimenté
 
Homme Mohamed Houri
Inscription : mars 2010
Messages : 286
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Houri
Localisation : France

Informations forums :
Inscription : mars 2010
Messages : 286
Points : 563
Points : 563
Dans quoi le temps de création de cet index est consommé? CPU ou I/O?

Utilisez-vous une PGA manuelle ou une PGA automatique?
Quelle est la taille de "sort area size" ?
Code :
SELECT * FROM v$pgastat;
Pour trouver les limites de mémoire pour votre release.
__________________
Bien Cordialement
www.hourim.wordpress.com
Mohamed.Houri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 19h49   #3
 
Homme
Consultant
Inscription : mai 2006
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant

Informations forums :
Inscription : mai 2006
Messages : 16
Points : -1
Points : -1
Par défaut SELECT * FROM v$pgastat

Citation:
sort_area_size=1048576 bytes

SQL> SELECT * FROM v$pgastat
NAME VALUE UNIT
------------------------------------------ ---------- ------
aggregate PGA target parameter 20971520 bytes
aggregate PGA auto target 9221120 bytes
global memory bound 1048576 bytes
total PGA inuse 10814464 bytes
total PGA allocated 59012096 bytes
maximum PGA allocated 102353920 bytes
total freeable PGA memory 655360 bytes
PGA memory freed back to OS 1552547840 bytes
total PGA used for auto workareas 237568 bytes
maximum PGA used for auto workareas 7420928 bytes
total PGA used for manual workareas 0 bytes
maximum PGA used for manual workareas 28975104 bytes
over allocation count 660
bytes processed 2.0208E+11 bytes
extra bytes read/written 7.9063E+11 bytes
cache hit percentage 20.35 percent
devkais est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 19h01   #4
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
bonjour,

il n'y aurait pas un problème de TEMP plein?
as-tu jeté un oeil à l'alert.log de la base?
est-ce tu vois les extents s'allouer?
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 00h18   #5
 
Homme
Consultant
Inscription : mai 2006
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant

Informations forums :
Inscription : mai 2006
Messages : 16
Points : -1
Points : -1
Rien à signaler dans le fichier alert.log.
Je ne vois pas les extents s'allouer ...

Citation:
Envoyé par Heaven93 Voir le message
bonjour,

il n'y aurait pas un problème de TEMP plein?
as-tu jeté un oeil à l'alert.log de la base?
est-ce tu vois les extents s'allouer?
devkais est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 13h30   #6
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 926
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 926
Points : 4 547
Points : 4 547
Un index de 15Gb n'a pourtant rien de volumineux.

Bon, vu que tu as une base poubelle de 10 ans (oracle 9.2.0.1), tu as sans doute aussi un système boulet, non ?

Créer un index en nologging dans le but de le créer plus vite sans comprendre à quoi sert de créer un index logging est un manque de jugement. En cas, de restore ou de clone, tu ne pourras plus imployer ton index ni insérer dans la table.

Et puis parallel 4 c'est bon quand on partitionne. En général en simple create index suffit :
Code :
1
2
3
4
5
6
7
8
9
10
11
SQL> CREATE INDEX i ON t(x);
 
INDEX created.
 
Elapsed: 00:05:26.72
 
SQL> SELECT bytes FROM user_segments WHERE segment_name='I';
 
           BYTES
----------------
  12,348,030,976
12min pour 12g sur ma machine de test.
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 00h44   #7
 
Homme
Consultant
Inscription : mai 2006
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant

Informations forums :
Inscription : mai 2006
Messages : 16
Points : -1
Points : -1
Comment expliquer 7 heures pour créer mon index de 15 Go alors ?
comment diminuer la durée ?
Merci.
devkais est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 20h41   #8
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 926
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 926
Points : 4 547
Points : 4 547
difficile de dire, il faudrait une analyse detaillée du temps. Si ta table est très grosses, très fragmentée, alors de lire toute la table prendra un temps considérable. Il faut aussi voir quels sont tes performances I/O, si tu as un disque local ou un SAN les performances peuvent différer. Quoi que sur mon portable avec deux disques SSD j'obtiens des perfs comparables aux SAN high-end :-)
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h39.


 
 
 
 
Partenaires

Hébergement Web