Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
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 27/06/2002, 21h24   #1
Membre habitué
 
Avatar de ddams
 
Inscription : mars 2002
Messages : 148
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2002
Messages : 148
Points : 111
Points : 111
Envoyer un message via MSN à ddams
Par défaut [Technique] Intérêt des index

Je vous explique la situation,

je dispose d'un base de données dans la quelle j'ai créé une table qui me sert de table de travail.

Cette table étant remplie dynamiquement, est-il judicieux d'y créé des index ?

Les indexs sont faits pour accélérer le traitement, mais comme ma table se rempli dynamiquement, la création des tables d'indexs prend aussi du temps !!! bref je suis devant un dilème et mes jeux d'essais ne m'ont pas apporter la solution.

merci d'avance

@+ddams
ddams est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2002, 22h22   #2
Membre confirmé
 
Avatar de hachesse
 
Inscription : mars 2002
Messages : 189
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 189
Points : 292
Points : 292
salut

un index sert a accelerer les recherche dans un table
c'est donc a toi de voir si tu a besoin d'un access rapide a certaine donnée ou non
hachesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2002, 19h05   #3
Membre confirmé
 
Inscription : mars 2002
Messages : 323
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 323
Points : 280
Points : 280
un index accélère la recherche (requêtes SELECT) mais ralenti les mises à jour (INSERT, UPDATE, DELETE).

A voir donc...

Ca vaut souvent le coup de poser des index sur les clefs étrangères afin d'accélérer les jointures.

Thomas
__________________
creapage.net
laffreuxthomas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2002, 22h32   #4
Membre éprouvé
 
Inscription : mars 2002
Messages : 516
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 516
Points : 483
Points : 483
Envoyer un message via MSN à Sylvain James
En général le temps gagné lors des SELECT est largement visible alors que le temps perdu sur des requêtes de mise à jour ne se ressent pas à moins que ce soit des gros volumes d'opérations à chaque fois.
Il est tout à fait judicieux de créer des index.

Sylvain
Sylvain James est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2002, 21h48   #5
Membre habitué
 
Avatar de ddams
 
Inscription : mars 2002
Messages : 148
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2002
Messages : 148
Points : 111
Points : 111
Envoyer un message via MSN à ddams
merci pour vos réponses...

@+ddams
__________________
@+ddams
ddams est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2002, 14h09   #6
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Petit ajout : un index dit cluster sert aussi parfois à trier les données physiquement dans la table. Ca a un avantage sur la ventilation des données dans la table, et donc sur diverses partitins, segments, etc. En clair, ça peut améliorer les accès concurrents et évitant certaines contentions en fin de pages.

De plus, c'est un des moyens pour s'assurer l'unicité de clés.
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2002, 19h08   #7
Membre Expert
 
Avatar de la drogue c'est mal
 
Inscription : novembre 2002
Messages : 2 249
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 2 249
Points : 2 308
Points : 2 308
tres franchement je vois pas en quoi le fait de creer un index ralenti tes insertion, ce n'est qu'un champ de plus dans ta table
__________________
il y a du linge sur la corde à linge
la drogue c'est mal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2002, 21h08   #8
Membre confirmé
 
Avatar de hachesse
 
Inscription : mars 2002
Messages : 189
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 189
Points : 292
Points : 292
Citation:
Envoyé par PassPassLeOuinje
tres franchement je vois pas en quoi le fait de creer un index ralenti tes insertion, ce n'est qu'un champ de plus dans ta table
très franchement, je vois pas pourquoi tu viens intervenir ici.

Les index rendent les insertions plus lentes car il faut mettre a jours l'index en plus de l'insertions des données dans la table.
Et c'est pareil pour les mise a jour et les suppressions.

De plus, les indexe ne sont pas un champ de plus dans la table.
hachesse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2002, 00h43   #9
Membre Expert
 
Avatar de la drogue c'est mal
 
Inscription : novembre 2002
Messages : 2 249
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 2 249
Points : 2 308
Points : 2 308
je suis pas specialiste DBA et je suis pas la pour polémiquer. Ce sera donc ma derniere intervention sur ce sujet.

La mise a jour d'un index correspond à l'incrementation de l'index, c'est tout, juste une variable à mettre à jour. De plus, on ne fait pas de mise a jour de l'index ( ou alors une réindexation des tables mais c'est autre chose ) et pour finir la suppression ne fait pas decrementer l'index.

un index n'est rien d'autre qu'une variable auto incrémentale qui doit respecter des regles d'unicité et qui est quasiment automatiquement gérée ( donc optimisée ) par toute les bases de donnée
__________________
il y a du linge sur la corde à linge
la drogue c'est mal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2002, 09h18   #10
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
En SGBDR, un index est une structure de données, généralement un arbre binaire. Rien à voir avec une variable à instancier.

L'insertion dans un index dépend déjà du type d'index.

Il y a des index clusters, définissant - généralement - l'ordre physique de stockage des enregistrement dans la table. La dernière feuille de l'arbre EST la page de données.

Il y les index non cluster dont les dernières feuilles sont des pointeurs sur les pages de données

Il y a encore d'autres types d'index : bitwise et bitmap, très utilisés dans les bases de DW, permettant un fort taux de compression, donc plus de données sur une page d'index, donc des recherches bien plus rapides, mais sur des champs spécifiquement courts ou des données dont le spectre et plutôt étroit.

Dans des cas bien précis, un index peut RACCOURCIR les temps d'insertion : lors d'énormes accès concurrents, le fait d'indexer une table peut augmenter le nombre de pages qui vont être touchées, et donc améliorer la concurrence. Sans index, tout le monde essayerait d'écrire sur la dernière page de la hash table, d'où goulet d'étranglement compte tenu de la gestion des verrous...
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2002, 15h11   #11
Membre du Club
 
Inscription : novembre 2002
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 67
Points : 59
Points : 59
Je dirais que la messe est deja dite,
je ne ferais que rajouter qu'il faut faire tres attention
au rajout d'index sur une table deja utilise par plusieurs
requetes ou procedure stockee, car il y a un risque de briser
leur perf.
Certaines requetes peuvent voir leur perf chuter par le fait
de passer par un nouvel index, cela peut casser un plan d'execution
deja existant et performant.

Donc penser a faire une etude d'impacte systematiquement sinon
ca peut etre le mur !

explain plan et autres TKPROOF (je sais c du Oracle et je connais
pas les equivalents sur les autres SGBD) devraient aussi aider.

P'tit Jean
P'tit Jean 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 06h49.


 
 
 
 
Partenaires

Hébergement Web