Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > AS/400
AS/400 Le Forum d'entraide sur IBM AS/400 - iSeries. RPG.
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 07/01/2010, 11h43   #1
Futur Membre du Club
 
Inscription : décembre 2008
Messages : 27
Détails du profil
Informations personnelles :
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : décembre 2008
Messages : 27
Points : 17
Points : 17
Par défaut SQL - création Index

Bonjour,

Comment peut-on savoir combien de fois a été utilisé un index (créé via CREATE INDEX)?

Comment peut-on savoir les index peu utilisés ou bien inutiles?

Est-il vrai que lors d'une requête SQL si l'index n'est pas créé, celui est automatiquement créé en temporaire mais reste-t-il stocké quelque part suir la machine?

Comment cela se fait-il qu'Iseries naivagator nous donne des index à créer mais dont l'ordre des champs est différents de la requete SQL? (voir doc ci-joint)

Merci
Fichiers attachés
Type de fichier : doc OPTIMISATION VALO - Creation d'index étape 1.doc (62,0 Ko, 12 affichages)
brunodu60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2010, 13h10   #2
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 816
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 41
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 816
Points : 1 035
Points : 1 035
Citation:
Envoyé par brunodu60 Voir le message
Comment peut-on savoir combien de fois a été utilisé un index (créé via CREATE INDEX)?
Comment peut-on savoir les index peu utilisés ou bien inutiles?
Cette requête nous permet de connaître tous les index non utilisés depuis plus de 200 jours (V5R4 mini)

Code :
1
2
3
4
5
select system_index_schema, system_index_name, LAST_USED_TIMESTAMP  
from SYSINDEXSTAT where                                             
  days(current date) - 
days(ifnull(date(LAST_USED_TIMESTAMP), '01.01.2000')) > 200       
order by 1, 2
Citation:
Envoyé par brunodu60 Voir le message
Est-il vrai que lors d'une requête SQL si l'index n'est pas créé, celui est automatiquement créé en temporaire mais reste-t-il stocké quelque part suir la machine?
Je ne comprends pas ta question.
Si le moteur SQL décide de créer un index temporaire (suite à de nombreuses sollicitation) il le conserve et le maintient jusqu'au prochain IPL, et il devient partageable entre tous les jobs. Ceci est vrai pour SQE mais pas pour CQE qui le supprime dans la foulée, ne le maintient pas et ne le partage pas.

Citation:
Envoyé par brunodu60 Voir le message
Comment cela se fait-il qu'Iseries naivagator nous donne des index à créer mais dont l'ordre des champs est différents de la requete SQL?
Il serait long dans un simple post de te faire un cours SQL Performance pour comprendre comment le système détermine les index à créer (ce cours dure 4j).
L'ordre n'a en effet rien à voir, c'est la cardinalité de la sélection et des valeurs du champ qui priment.
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2010, 09h00   #3
Futur Membre du Club
 
Inscription : décembre 2008
Messages : 27
Détails du profil
Informations personnelles :
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : décembre 2008
Messages : 27
Points : 17
Points : 17
Merci pour tes réponses, mais j'ai un question concernant le code SQL que tu as mis, où vas-tu chercher le nom du fichier?
brunodu60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2010, 09h14   #4
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 816
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 41
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 816
Points : 1 035
Points : 1 035
Dans ce cas fais un select * from SYSINDEXSTAT Where ....
La table sur laquelle pointe le logique s'appelle TABLE_NAME et sa bibliothèque TABLE_SCHEMA
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2010, 14h08   #5
Futur Membre du Club
 
Inscription : décembre 2008
Messages : 27
Détails du profil
Informations personnelles :
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : décembre 2008
Messages : 27
Points : 17
Points : 17
je crois que tu n'as pas compris ce que je souhaitais. Dans ton SQL tu as le fichier SYSINDEXSTAT, d'où vient-il?
brunodu60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2010, 14h26   #6
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 816
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 41
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 816
Points : 1 035
Points : 1 035
De qsys2 mais V5R4 minimum (comme je l'ai posté précédemment), et encore faut-il avoir les dernières PTFs group DB2
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 07h47.


 
 
 
 
Partenaires

Hébergement Web