Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
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 08/02/2011, 19h51   #1
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Par défaut Comment améliorer les performances de BCP

Bonsoir,

J'utilise BCP pour la migration d'ASE 12.5 vers 1SE 15.0.3, afin de pouvoir modifier la taille des blocks utilisée. Pour une base de 3 Go de Data, il faut environ 1h15 (et parfois plus) pour effectuer cette migration alors que cette même base migrée via Dump/Load (sans modifier la taille des blocks) met 2 fois moins de temps. Je souhaite connaitre les paramètres sur lesquels je peux jouer pour améliorer les performances de BCP, car la doc Sybase ne dit rien concernant les performances.
Pour info, lorsque je fais mon Load, il est effectué en BCP Fast.

Merci d'avance pour votre aide.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 23h28   #2
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Bonsoir,

du peux que je sais, une des choses qui peut ralentir l'insertion via BCP c'est la présence d'index sur la table dans laquelle les données sont insérées.

Il est recommandé de n'avoir aucun index sur les tables "BCPisées" et de les rajouter par la suite

My 0,02€...
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 06h32   #3
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Bonjour Arnaud et merci pour ta réponse.

Je n'ai ni indexe, ni trigger sur mes tables lorsque j'effectue mon bcp. C'est d'ailleurs pour ça qu'il se fait en mode Fast.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h04   #4
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
salut,

Code :
même base migrée via Dump/LOAD (sans modifier la taille des blocks) met 2 fois moins de temps
donc par dump/load, cela met 30 mins ? Cela me semble un peu long non ? à moins que tu fasses ta migration sur ton pc ?

Le paramètre sur lequel tu peux peut-être jouer est le -b (batch size). Plus le batch size est important et moins l'activité de commit sera importante donc généralement, sur de gros volumes, ça sra plus rapide. ASE matérialise une transaction toutes les <batch size> lignes. Donc si ASE valide toutes les 10000 lignes (par défaut), il peut être interessant de le faire seulement tous les millions par ex. Mais attention à la saturation du journal.

Si tu est sous unix, tu peux également utiliser un canal nommé (pipe) pour effectuer le bcp-out et le bcp-in en simultané pour gagner du temps. Tout est expliqué ici : http://www.sybase.com/detail?id=1080140

Regarde également les régles de fast/slow bcp car depuis la 15.0.2, cela change un peu :

http://infocenter.sybase.com/help/in...502/X65215.htm

Si la table de destination est en mode de verrouillage DOL avec un index cluster et /ou avec des index nonclustered et non uniques, tu fais du fast bcp.
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2011, 16h39   #5
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Salut Emmanuel, merci pour la réponse.

Non, la migration se fait entre 2 serveurs 2 CPU quad core multi-thread (soit 16 coeurs visibles) avec 72 Go de RAM, connectés à une baie SAN.

L'augmentation du batch size -b de 10 000 à 1 000 000 m'a généré des erreurs Segmentation fault. Je l'ai repassé à 100 000, pour voir. J'ai vu le document pour canal nommé, mais il indique un CR# 626571 qui n'est pas accessible. Je cherche aussi du coté du -A packet_size ainsi que du buffer pool large IO.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 19h19   #6
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
salut Tibal

par curiosité, quel hardware/os utilises-tu ? En effet le packet size peut aider également ainsi que les i/o étendues.

Il faut également que tu vérifies côté système d'exploitation si tout est ok (vmstat, iostat).

A+
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 11h34   #7
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
L'OS est une RedHat 5.4 64bit sur des lames HP avec 2 CPU quadcore multithreadés (16 CPU vues par l'os) avec 72 Go de RAM.
Lors du BCP in, la charge machine est extrèment faible (top, vmstat, iostat, ...). Les serveurs sont pluggués à une baie SAN, où sont localisés les fichiers des bases concernées.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 10h22   #8
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
En fait,
Les paramètres que j'ai utilisé pour améliorer les performance du BCP in sont les bons, à savoir :
-b batchsize
-A packet_size
Les erreurs Segmentation fault sont dues à un bug en cours de correction par Sybase. Celle ci ne sera disponible que pour la 15.5, aux alentours de juillet.
tibal 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 +2. Il est actuellement 06h05.


 
 
 
 
Partenaires

Hébergement Web