Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2588 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  creation d'index , stat oracle ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

creation d'index , stat oracle ???

n°1515432
donny3
Posté le 16-02-2007 à 11:32:07  profilanswer
 

salut,
 
Les index permette d'accelerer les recherches sur une table;
donc avant d'alimenter ma tables,je crée les index.
en théorie on devrait faire :
create table puis un create index et ensuite un insert des valeurs, c'est bien cela
supposons que ma table contienne deja des données je peux quand même crée un index ?
 
Le calcul des statistique se fait, une fois que j'ai crée ma table et mes index ou apres avoir inserer des données dans ma tables ?
 
 
Merci.

mood
Publicité
Posté le 16-02-2007 à 11:32:07  profilanswer
 

n°1515451
couak
Posté le 16-02-2007 à 11:53:10  profilanswer
 

alors plusieurs choses :
 
- la création d'index, tu la fais quand tu veux, elle s'alimente en même temps que les données
si ta table contient déjà des données, l'index contiendra une indexation de tes données
si des données sont ajoutées, ton index sera modifiée
 
- les calculs de stats se font quand tu veux, elle influent sur le plan d'exécution lorsque tu requetes tes tables, l'idéal est de lancer des stats quand tu as beaucoup de données qui ont évolués (donc dans ton cas quand tu auras inséré tes données)
Si tu peux de les lancer de manière régulière, fais-le

n°1515522
MagicBuzz
Posté le 16-02-2007 à 14:21:52  profilanswer
 

a noter qu'il est préférable de désactiver les index lorsque tu allimentes une table avec beaucoup de données d'un coup. en effet, les index sont remplis ligne par ligne, et cela peut ralentir un lot de requêtes insert.
idem pour delete ou update.
 
ceci dit, la désactivation ne doit s'appliquer que lors d'un traîtement "batch". jamais en utilisation normale : en effet, si tu désactives les index pendant que des utilisateurs font des requêtes sur la table, soit tu vas aller plus vite, mais tout les autres iront plus lentement, ce qui n'est pas souhaitable.
 
alternativement, pour charger un gros volume d'un coup, tu peux passer par un SQL Loader, qui ne recalcule les index qu'à la fin du traîtement (seule les index de type contrainte sont testés et mis à jour). idem pour supprimer des données, dans ce cas il vaut mieux utiliser TRUNCATE, qui ne recalcule pas les index avant la fin de l'exécution. attention cependant : le truncate n'est pas rollbackable !

n°1515641
ajnag
where no man has gone before
Posté le 16-02-2007 à 16:08:31  profilanswer
 

pour les stats tu peux utiliser le packages existant

 
Code :
  1. BEGIN
  2. DBMS_STATS.gather_schema_stats(ownname => 'nom_shema',cascade=>true);
  3. END;
  4. /
 

ça passera les stats sur tous les objets du shema 'nom_shema' ( indexes et tables principalement )
a ne pas passer sur les shema sys et system par contre.

 

des indexes sont placés automatiquement par le moteur oracle sur certains objets ( primary key par exemple ), donc pas besoin de redefinir des indexes pour ces objets. ( sauf si tu les definis explicitement a la création de table, cf la doc oracle pour plus de détails )

 


P.S. je suis sous 9i, donc la syntaxe est peut etre pas bonne pour les autres versions

Message cité 1 fois
Message édité par ajnag le 16-02-2007 à 16:09:26
n°1515648
couak
Posté le 16-02-2007 à 16:12:22  profilanswer
 

c'est la même syntaxe sous 8i et 10g

n°1515672
orafrance
Posté le 16-02-2007 à 16:35:55  profilanswer
 

ajnag a écrit :


ça passera les stats sur tous les objets du shema 'nom_shema' ( indexes et tables principalement )
a ne pas passer sur les shema sys et system par contre.


 
Si si, en 9i ça peut être passé sur SYS et d'ailleurs en 10g c'est systématique il me semble :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  creation d'index , stat oracle ???

 

Sujets relatifs
syntaxe jointure externe oraclePB Requete de calcul sous oracle
[OLE]Creation de fichier OOomacro Excel VBA : Création automatique de 140 graphiques
Creation lecteur videoREQUETE MATCH ca marche toujours pas !
Oracle - Contrainte entre tables sur Bases différentes ?création d'espace membre
[Résolu] [Batch] Création d'un dossier à l'ouverture de Windows 
Plus de sujets relatifs à : creation d'index , stat oracle ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR