Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > Administration
Administration Forum d'entraide sur les outils d'administration natifs pour Firebird: gbak, gfix, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2012, 17h28   #1
mballasse
Invité de passage
 
Homme Michel BALLASSE
Responsable de projet fonctionnel
Inscription : juillet 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Michel BALLASSE
Âge : 45
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juillet 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à mballasse
Par défaut Optimisation de table et d'index

Bonjour,

Je ne suis sans doute pas au bon endroit, mais j'ai une question qui me tarraude l'esprit depuis quelque temps.
Nous avons un applicatif métier développé sous Delphi avec Firebird 2.1.5 par un éditeur logiciel.
Sauf erreur de ma part, et selon mon expérience dans le domaine de la conception de base de données (environs 16 années),
est ce qu'une âme avertie pourrait m'éclairer et m'expliquer la pertinence de quelques index placés sur une table donc voici la description :

Table XXXXX
ID Bigint not null
DE Varchar(255)
A Varchar(1000)
SUJET Varchar(1000)
CORPS Varchar(1000)
PIECEJOINTE Varchar(100)
TYP_ENVO Integer
COD_SIT Varchar(10) not null
SMTP Varchar(100)
MODE Integer
REFERENCE Varchar(100)
PREFIXE Varchar(50)
COD_PART Varchar(20)
NUM_PIECE Varchar(50)
TYP_PIECE Integer
TYP_PART Integer
TYP_TRANS Integer
TYP_COMPL Integer
FLAGMULTIBL Integer
TIMER_ENVOI Time
DATE_DEMANDE Timestamp
DATE_PROG Date
DATE_ENVOI Timestamp
PARAMREPORTNAME1 Varchar(50)
PARAMREPORTVALUE1 Varchar(50)
PARAMREPORTNAME2 Varchar(50)
PARAMREPORTVALUE2 Varchar(50)
PARAMREPORTNAME3 Varchar(50)
PARAMREPORTVALUE3 Varchar(50)
PARAMREPORTNAME4 Varchar(50)
PARAMREPORTVALUE4 Varchar(50)
PARAMREPORTNAME5 Varchar(50)
PARAMREPORTVALUE5 Varchar(50)
PARAMREPORTNAME6 Varchar(50)
PARAMREPORTVALUE6 Varchar(25000)
PARAMREPORTNAME7 Varchar(50)
PARAMREPORTVALUE7 Varchar(50)
PARAMREPORTNAME8 Varchar(50)
PARAMREPORTVALUE8 Varchar(50)
PARAMREPORTNAME9 Varchar(50)
PARAMREPORTVALUE9 Varchar(50)
PARAMREPORTNAME10 Varchar(50)
PARAMREPORTVALUE10 Varchar(50)
ERREUR Integer not null
NB_ESSAI Integer not null

Indexes

IDX_PART_MAILFAX_QUEUE1 ASC => COD_SIT, MODE, NUM_PIECE, TYP_PIECE, TYP_PART, DATE_ENVOI
IDX_PART_MAILFAX_QUEUE2 ASC => COD_SIT, MODE, NUM_PIECE, TYP_PIECE, TYP_PART, DATE_ENVOI, COD_PART, A
IDX_PART_MAILFAX_QUEUE3 ASC => MODE, TIMER_ENVOI, DATE_ENVOI
IDX_PART_MAILFAX_QUEUE4 ASC => A, COD_SIT, COD_PART, NUM_PIECE, TYP_PIECE, TYP_PART, DATE_ENVOI
IDX_PART_MAILFAX_QUEUE5 ASC => DE, DATE_DEMANDE
PART_MAILFAX_QUEUE_IDX1 ASC => DATE_ENVOI, MODE
PART_MAILFAX_QUEUE_IDX2 ASC => ERREUR
PK_PART_MAILFAX_QUEUE ASC => ID_MAILFAX_QUEUE, COD_SIT

Comment peut on même simplement envisager de placer dans un index composé un champ de type varchar(1000) ?

Je ne sais pas comment optimiser dans une telle structure afin d'améliorer les performances globales.
Si quelqu'un a une idée, je suis preneur.

Michel

PS : juste pour information, il y environ 350000 enregistrements dans cette table.
mballasse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h47.


 
 
 
 
Partenaires

Hébergement Web