Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
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 13/06/2006, 10h47   #1
Membre habitué
 
Inscription : octobre 2003
Messages : 483
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : octobre 2003
Messages : 483
Points : 136
Points : 136
Par défaut [IB7.5 ]Baisse performances serveur

Bonjour.

Je cherche des infos pour me guider dans la résolution d'un problème de baisse de performances d'un serveur sous IB 7.5.1

Serveur = HP Proliant ML350 Bi-XEON 3GHz / 2Go RAM ECC / SCSI ULTRA320
( IB version monolicence donc n'exploite pas les 2 processeurs )
5 PC qui accédent de façon assez soutenue au serveur.
Fréquence des accés périodiques : 5 secondes
Service appelés : environ soixantaine dix appels (pour les 5 PC) à des procédures stockées.

La base de données fait environ 500Mo et sa taille est destinée à croitre régulièrement (enregistrement quotidien de données numériques).
Environ 30 tables dont 2 beaucoup plus sollicitées et plus importantes qui contiennent à ce jour environ 1,5 millions d'enregitrements (taille unitaire 20 octets).

Nous avons procédé à des backup/restauration, ce qui permet de retrouver les performances initiales, mais ces dernières se dégradent assez vite.

Je penche pour un problème de performance lié au re-calcul des index lors des appels aux procédures stockées qui effectuent des INSERT dans ces tables de données.

Les tables concernées contiennent entre 1 et 2 millions d'enregistrements pour le moment. Est-ce beaucoup pour une seul table ?
A chaque mise à jour un index au moins est recalculé, est-ce cela qui peut faire baisser les perfomances au fur et à mesure des INSERT ?

Merci pour vos avis sur ce problème.
lio33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 08h52   #2
Membre régulier
 
Avatar de maamar1979
 
Inscription : mai 2006
Messages : 174
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 174
Points : 96
Points : 96
salam,
certe le recalcul des indexes ralentis le serveur, surtout si les table sont tres volumineuse (ce qui est le cas ici).

je te propose de desactiver le recalcul d'indexe et de voir si les performance se degrade aussi (pour confirmer que c'est la cause de tes probleme). si c'est le cas tu maintiens les indexes desactiver et tu poura les reactiver apres x enregistrement (insertion/suppression/...) par exemple au lieu de chaque operation (juste une proposition ).
maamar1979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 12h02   #3
Membre habitué
 
Inscription : octobre 2003
Messages : 483
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : octobre 2003
Messages : 483
Points : 136
Points : 136
Bonjour,

et merci pour ta réponse.
C'est effectivement une des pistes que je compte suivre.

Une question cependant :

Quant on effectue une insertion dans une table, IB met à jour les index associés. Est-ce la même opération que de faire un SET INDEX INACTIVE suivi de SET INDEX ACTIVE ?

Autre question :

Une table qui peut contenir jusqu'à 20 millions d'enregistements est-ce envisageable ou cela tient-il du délire ?
lio33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2006, 16h48   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
Citation:
Envoyé par lio33
Quant on effectue une insertion dans une table, IB met à jour les index associés. Est-ce la même opération que de faire un SET INDEX INACTIVE suivi de SET INDEX ACTIVE ?
Il vaux mieux désactiver puis réactiver les index


Citation:
Envoyé par lio33
Une table qui peut contenir jusqu'à 20 millions d'enregistements est-ce envisageable ou cela tient-il du délire ?
c'est tout à fait possible
et déjà vu (au moins sur Firebird )
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2006, 16h52   #5
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
ceci dit, sur le problème global de perte de perf, il faudrait surtout vérifier les stats de la base, voir comment sont gérées les transactions dans votre ou vos applis, vérifier que le sweep à le temps de se faire à un moment ou un autre...
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2006, 13h21   #6
Membre régulier
 
Avatar de maamar1979
 
Inscription : mai 2006
Messages : 174
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 174
Points : 96
Points : 96
salam

Citation:
Quant on effectue une insertion dans une table, IB met à jour les index associés. Est-ce la même opération que de faire un SET INDEX INACTIVE suivi de SET INDEX ACTIVE ?
oui, car les indexe sont recrer (SET INDEX INACTIVE detruit l'indexe & SET INDEX ACTIVE recrer l'indexe).

Citation:
Une table qui peut contenir jusqu'à 20 millions d'enregistements est-ce envisageable ou cela tient-il du délire ?
oooooooooui
__________________
On fait tous les X choses nécessaires pour avoir comme résultats un Y, finalement c'est Z qu'on obtiens : c'est le destin.
maamar1979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 15h07   #7
Membre habitué
 
Inscription : mars 2002
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 119
Points : 100
Points : 100
Bonjour

J'aimerais connaitre la syntaxe exacte pour désactiver les index.

Car quand je fais
QryRequete.Sql.add('SET INDEX INACTIVE');
Qryrequete.Open;

Il me provoque une erreur.

Merci d'avance
__________________
Mika
www.usargancy.net
mika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 15h40   #8
Membre émérite
 
Avatar de Yurck
 
Homme
Ingénieur développement logiciels
Inscription : février 2005
Messages : 682
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 3
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2005
Messages : 682
Points : 921
Points : 921
Bonjour,

Code :
1
2
3
 
ALTER INDEX NOM_INDEX inactive;
ALTER INDEX NOM_INDEX active;
Si tu utilisais ibExpert tu aurais sans doute toutes tes réponses.

a+
Yurck 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 12h47.


 
 
 
 
Partenaires

Hébergement Web