Bonjour,
Je suis conscient de mon faible niveau sur le bon usage des index et du coup du résultat des PLANs,
y a t il des pages concernant l'analyse des PLANs, de manière à comprendre le retour que j'obtiens
dans IbExpert par exemple.
Bonjour,
Je suis conscient de mon faible niveau sur le bon usage des index et du coup du résultat des PLANs,
y a t il des pages concernant l'analyse des PLANs, de manière à comprendre le retour que j'obtiens
dans IbExpert par exemple.
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Bonjour,
dans IBExpert je ne rappelle plus , avec flamerobin chaque requête (ou presque) fourni un panneau statistiques montrant le log des actions sur la base
à ma souvenance ibexpert a ce genre de choses mais je ne l'ai plus sur mes postes.démarrage de transaction
SQL
temps de préparation
Champs récupérés (nom alias type , taille
Plan utilisé
nombre de lectures etc...
temps d'exécution
.....
Je me suis rafraichi la mémoire sur des images écran, il y a un onglet 'plan analyser' dans le SQL editor
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Oui il y a bien dans IbExpert ce genre de retour après une SQL, mais ce que je cherche c'est un moyen de l'interpréter de manière efficace.
Par exemple, je vois des exécutions sous PLAN NATURAL ou PLAN autre.
Je ne sais dire à quoi ça correspond.
Je cherche à me former là dessus, soit via des sites web, (tuto etc.), soit des livres sur le sujet.
J'ai jamais trop cherché , car sous ssms de Sql serveur, dans les dernières version, il y a un analyseur, qui indique si les index sont optimums et quels index il faudrait créer pour améliorer les temps d'exécution et c'est très efficace.
C'est pas le même prix, mais je suis sur qu'il y a des règles que je pourrais appliquer pour améliorer mes requêtes en construisant de meilleurs index, enfin des index correspondant aux requêtes qui me sont utiles.
edit:
Tes remarques ont tout de même été utiles, car du coup j'ai regardé en détail l'analyseur de plan, qui me dit les tables qui ne sont pas correctements indexées par rapport à la requête lancée.
C'est déjà ça de trouvé que je n'avais compris au premier abord.
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
je n'avais pas vraiment compris le sens de ta question , as-tu été fouiller dans les cours de SQLPro ? http://sqlpro.developpez.com/cours/optimiser/ << il y parle à peine du plan mais il y en a certainement d'autres
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Oui, pas très claire comme façon de rédiger ma question... c'est moi qui suis confus
Je n'ai pas été sur ce cours là, mais je vais aller y jeter un coup d'oeil.
Pour la recherche, pas facile avec PLAN et/ou index c'est le fleuve...
C'est pour ça que je viens ici au cas où qq. aurait trouvé ce type d'info.
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Bonjour,
Voici un article quelque peu ancien, mais il m'avait été utile en son temps. Il s'agit d'un tutoriel pour Interbase, mais il existe des similitudes avec Firebird.
l'adresse : http://hcesbronlavau.developpez.com/PlansIB/
Tu peux toujours le parcourir.
Bon courage
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Bonjour,
Je reviens sur ce post car je suis confronté a un truc qui me parait bizare.
J'utilise IbExpert pro et si je fais un simple
sur une table qui a cette structure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part select ensid, sitid, tpvid from TPV
IbExpert me dit dans l'analyser que sur 755 lignes, j'en ai 755 qui ne sont pas indexées !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE TPV ( TPVID INTEGER NOT NULL, TPVNOM VARCHAR(32) NOT NULL, ENSID INTEGER NOT NULL, SITID INTEGER NOT NULL ); ALTER TABLE CAISSES ADD PRIMARY KEY (ENSID, SITID, TPVID);
Bien sur cette requete ne sert à rien, mais bon je voudrais comprendre si c'est moi qui n'ai pas compris ou autre...
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Bonjour,
C'est moi ou une erreur de transcription ? tu parles de la table TPV mais l'index créé est sur la table CAISSES .S'il n'y a pas d'erreur alors TPV n'a pas d'index et IBexpert ne se trompe pas dans son affirmation
Edit : je comprends que les Terminaux Points de Vente (TPV) soient des CAISSES mais pas Firebird
Perso, j'aurais ajouté un champ unique numérique auto incrémenté à la table TPV comme clé primaire et un index sur les trois champs mais bon , je ne jette pas la pierre ce n'est que tout récemment que je préfère ce genre de structure
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Mea culpa
Il faut lire
J'ai fait une copie de ma table caisses pour essai qui se nomme TPV et je t'ai mélangé les DDL, ça serait trop facile sinon
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE TPV ADD PRIMARY KEY(ENSID, SITID, TPVID);
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Je pense que c'est un problème d'ibexpert qui me raconte des salades sur ce type de requêtes.
Car si je fais une UNION toute bête avec la table Sites qui est liée avec la table TPV via le champ ensid et sitid, là j'ai une analyse cohérente,
avec zéro ligne non indexée.
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Peut être aussi que si tu avais mis un ORDER BY après le Select tu aurais eu un bon résultat
SELECT * FROM TABLE , l'interpréteur n'utilisera aucun index
SELECT * FROM TABLE ORDER BY INDEX , dans ce cas il utilisera l'index
Après IBexpert ne s'exprime peut être tout simplement pas en bon français quand il dit
il faut peut être comprendresur 755 lignes, j'en ai 755 qui ne sont pas indexées
755 lignes aucun index utilisé
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Merci SergioMaster,
tu as raison sur tout:
Je venais de lancer ma requête avec l'order by, suite à la lecture approfondie du doc dans ce post sur les plans http://hcesbronlavau.developpez.com/PlansIB/
et effectivement l'order by oblige le moteur à utiliser les index du coup ibexpert ne me ressort plus d'anomalie.
Maintenant il me reste à analyser le reste, vu que je ne suis plus perturbé par ce cas de figure.
“La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
_____________________________________________________
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager