IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Adaptive Server Enterprise Sybase Discussion :

[ASE 15.0.2]Optimisation insertion ( Tunning )


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut [ASE 15.0.2]Optimisation insertion ( Tunning )
    Bonjour
    Je suis confrontée aux lenteurs lors d'insertion 40 enr/s environ.
    J'ai augmenté "default data cache' et j'ai créé large I/O pool pour ce cache.
    Ca n'a eu aucun effet pour l'insertion en cours.

    Quelle piste faudrait-il explorer ?

    Je joins le rapport de sp_sysmon effectué alors que mon insert se poursuivait.
    via la commande sp_sysmon "00:05:00"

    Merci
    msomso
    P.S.
    J'ai supprimé tous les indexes sur la table Cible (sauf le PK car colonne identity).

  2. #2
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 134
    Points : 168
    Points
    168
    Par défaut
    Bonjour,

    comment l'insertion est-elle faite (insert into .. select/insert into .. values/bcp) ?
    Y-a-t-il plusieurs processus qui font des insert en simultané?
    Quelle est la taille du user log cache, et la log io size de la base (sp_logiosize pour vérifier)?
    Je vois que vous êtes sous solaris.
    Quel est le taux d'utilisation du cpu sur la machine (vérifier avec ps ou prstat)?
    L'activité des disque est elle importante (vérifier avec 'iostat -cntzx 2')?
    DBA sybase confirmé
    Cherche un poste sur Paris

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour

    L'insertion est faite par un ETL - phase de migration d'une application.
    Il s'agit de serveur de test/dev (peu sollicité donc).
    EDIT2: Par ailleurs, je suis la seule à travailler sur la base de test. Pas d'insertions en parallèle.ETL s'execute sur un poste client et accède le serveur via le réseau. Les select sont cependant rapides. fin EDIT 2
    Les lignes sont insérées à partir du code java (Insert ... values ...). le commit est fait par 10000 enr.
    J'ai testé aussi ce traitement avec bcp, mais la création du fichier par ETL est lente et j'ai des messages de troncature (overflow) sur une colonne de type "text". Je suis donc revenue sur le mode classique (hors bcp).


    Réponse aux autres questions:
    CPU: 10% à 15 % (avec prstat)
    log i/o size : 2Ko (sp_logiosize)
    activité de disques: cf fichier png ci-joint.
    Edit 1: database device est "d101"

    Merci
    msomso

  4. #4
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 134
    Points : 168
    Points
    168
    Par défaut
    Je vois 3465615 de cache hits, ce qui me parrait beaucoup pour 60000 inserts.
    Pourriez-vous faire un insert manuellement en ayant fait auparavant:

    set showplan on
    set statistics io,time,plancost on
    go

    Puis me fournir le résultat.
    DBA sybase confirmé
    Cherche un poste sur Paris

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour,
    ce serait avec plaisir si je pouvais y passer du temps pour comprendre, mais cela n'est pas possible.
    Je suis donc passée à la version avec bcp suivi d'update spécifique pour la colonne "text".

    Simuler cet insert manuellement me demanderait d'écrire un code spécifique pour ramener l'ensemble de données.

    Merci de votre intérêt.

    msomso

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Pour que BCP puisse gérer correctement le champs "text" on peut utiliser l'option -T (taille max du champs texte - par défaut c'est 32k).

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour
    j'ai bien vu cette option dans la doc.
    Seulement, lors de la migration le contenu envoyé dans la colonne text provient de la concaténation de 4 ou 5 commentaires de type varchar(70).
    La taille du text à insérer est donc largement inférieure à la valeur de 32Ko.
    A noter cependant que parfois, le signe de retour chariot "\n" en fait partie ( bcp ... -r "\r" au lieu de la valeur par defaut: "\n")

    Dans ce contexte, je ne comprends pas pourquoi le bcp genère les messages de "overflow".
    En plus, il me semble que rien n'est tronqué en réalité. C'est dommage que ces enregistrements ne soient pas envoyés dans le fichier de rejets. D'ailleurs c'est peut être précisément parce qu'ils sont bien insérés au final.

    Par précaution, j'insère par bcp tout sauf ma colonne text. Ensuite j'effectue un update classique pour cette donnée (un peu long).
    Après avoir supprimé tous les indexes sauf (PK car colonne identity), le temps de bcp est acceptable.
    Comment peut -on vérifier dans quel mode s'effectue le bcp (rapide/slow) ?

    Merci
    msomso

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    A partir du moment ou il y a un indexe et/ou trigger c'est le mode slow bcp qui est utilisé (ce qui est votre cas).
    Ce mode n'a pas besoin que soit activée l'option 'select into/bulkcopy/pllsort' sur la base car l'opération est journalisée (contrairement au fast bcp).

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Citation Envoyé par diablolight Voir le message
    A partir du moment ou il y a un indexe et/ou trigger c'est le mode slow bcp qui est utilisé (ce qui est votre cas).
    En 15.x ces contraintes ont été un peu relachées, et il est maintenant possible de faire un fast bcp même si un indexe ou trigger existe (mais je crois que s'il n'y a qu'un seul index).

    Le bcp 15.x avertit en principe si il doit choisir le slow bcp.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Citation Envoyé par msomso Voir le message
    Bonjour
    j'ai bien vu cette option dans la doc.
    Seulement, lors de la migration le contenu envoyé dans la colonne text provient de la concaténation de 4 ou 5 commentaires de type varchar(70).
    La taille du text à insérer est donc largement inférieure à la valeur de 32Ko.
    A noter cependant que parfois, le signe de retour chariot "\n" en fait partie ( bcp ... -r "\r" au lieu de la valeur par defaut: "\n")

    Dans ce contexte, je ne comprends pas pourquoi le bcp genère les messages de "overflow".
    Le problème viens probablement de la lecture des colonnes par bcp. En général, si je dois faire un bcp où les champs peuvent comprendre des \n je spécifie des séparateurs ad-hoc. qqch du genre:

    bcp ... -t'!@@!' -r'@@\n'

    Evidemment il faut que le fichier ait été généré avec ces séparateurs...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut EDIT1
    Bonjour

    Rep1.
    il est maintenant possible de faire un fast bcp même si un indexe ou trigger existe
    Justement je voudrais savoir (comment ?) si mon bcp s'effectue en mode EDIT1: "fast" fin EDIT1 en présence d'index PK
    Je ne vois aucun message sur le mode d'exécution au lancement de bcp.
    J'observe le temps d'environ 1 minute par un paquet de 20000 enr.


    Rep2.
    bcp ... -t'!@@!' -r'@@\n'
    Cela m'intéresserait: certains de mes champs peuvent contenir tout caractère y compris le ';'.
    Cependant, je n'ai pas pu utiliser comme séparateur de champs de caractères comme '@' ou '£'.
    J'avais un message d'erreur (... fichier contient 1 ligne ... ) au lancement du "bcp in".

    Ma version de bcp sur le client Windows de Sybase 15.0.2 est :
    bcp -v
    Sybase CTBCP Utility/15.0/P-EBF14167 ESD #7/PC Intel/BUILD1500-093/OPT/Wed Dec 1 3 20:04:04 2006

    Merci
    msomso

  12. #12
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Fast ou slow:

    http://infocenter.sybase.com/help/in...ity/X20696.htm

    (en anglais, le même existe probablement dans la doc française)

    Pour les séparateurs... sous windows il semble que les simple-quotes ne sont pas interprétées par CMD, et passés tels-quels à bcp, ce qui fait que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    C:\>bcp download..mp_test out c:\temp\mp_test.bcp -Usa -Ptoto -SSRV -c -t'!@@!' -r'@@\n'
     
    Starting copy...
     
    2 rows copied.
    Clock Time (ms.): total = 78  Avg = 39 (25.64 rows per sec.)
     
    C:\>type c:\temp\mp_test.bcp
    1'!@@!'one'@@
    '2'!@@!'this is a test!'@@
    '
    Le bcp in avec ce fichier et la même commande marche correctement.

    Je pense qu'il faut spécifier les séparateurs sans quotes...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut Tests et documentation sybase
    Bonjour
    La lecture de la page du lien m'a laissée confuse. J'ai donc pris du temps pour faire quelque tests.
    Avec 'true' pour l'option 'select into/bulkcopy/pllsort', j'ai fait des tests suivants (cf mon code ci-dessous):

    CAS_FAST
    test F1: table TB sans index + FK _TB_TA
    CAS_SLOW
    test S1: table TB + index PK + FK _TB_TA
    test S2: table TB + index PK + FK _TB_TA + index IDX_TB
    test S3: table TB + index PK + FK _TB_TA + index IDX_TB + false pour 'select into/bulkcopy/pllsort'
    If the table includes nonclustered indexes or triggers, but sp_dboption 'select into/bulkcopy/pllsort' is not enabled, Adaptive Server uses slow bcp, and prints this warning message to indicate that you can improve the performance of bcp by enabling sp_dboption 'select into/bulkcopy/pllsort':

    Performing slow bcp on table '%s'. To enable fast bcp please turn on 'select into/bulkcopy' option on the database '%s
    RESULTATS:
    Je n'ai pas eu l'avertissement cité dans la doc (attendu en test S3). Mon bcp affiche juste ceci (dans tous les tests):
    Starting copy...
    Batch successfully bulk-copied to SQL Server.
    Batch successfully bulk-copied to SQL Server.

    2 rows copied.
    Clock Time (ms.): total = 63 Avg = 31 (31.75 rows per sec.)
    Dans aucun cas la contrainte FK_TB_TA n'a été vérifiée.
    Que ce soit le test F1 ou S1/S2/S3, le BCP insère bien les 2 lignes du fichier dans la table TB .

    Suis-je donc toujours en mode fast, ou bien le bcp ne valide jamais les FK ?

    J'ai cru comprendre que cela était "le prix à payer" mais qu'en mode "fast":
    When you copy data into a table that has one or more indexes, you can use fast bcp. This includes indexes implicitly created using the unique integrity constraint of a create table statement. However, bcp does not enforce the other integrity constraints defined for a table.
    D'après cette citation:
    1. "you can use" et non "bcp uses" suppose que l'on devait pouvoir spécifier le mode voulu, comment le faire ?
    2. les contraintes ne sont pas validées en mode "fast", j"en déduis qu'elles devaient l'être en mode "slow". Ai-je tort ?

    ------------------------ mon brouillon de tests: --------
    le fichier test.csv contient:
    ID;C
    1;A
    2;X

    Le code de mes tests:
    create table mig.dbo.TA (id integer, c varchar(10))
    alter table mig.dbo.TA add constraint UN_C unique nonclustered (c asc) with reservepagegap=1
    insert mig.dbo.TA values (1,'A')
    GO
    drop table mig.dbo.TB
    GO
    --create table mig.dbo.TB (id integer, c varchar(10), constraint PK_TB primary key nonclustered (ID))
    create table mig.dbo.TB (id integer, c varchar(10), constraint PK_TB primary key clustered (ID))
    alter table mig.dbo.TB add constraint FK_TB_TA FOREIGN KEY (C) REFERENCES mig.dbo.TA(C)
    GO
    create nonclustered index IDX_TB on mig.dbo.TB ( c asc)
    GO
    Merci
    msomso
    P.S.
    Je cite la doc du lien : http://infocenter.sybase.com/help/in...ty/X20696.htm:

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut Test supplémentaire
    Bonjour
    Suite à mon post précedent, j'ai effectué encore un test pour arriver à lancer bcp en mode "fast".
    create table mig.dbo.TA (id integer, c varchar(10))
    insert mig.dbo.TA values (1,'A')
    GO
    create table mig.dbo.TB (id integer, c varchar(10)
    --create table mig.dbo.TB (id integer, c varchar(10), constraint PK_TB primary key nonclustered (ID))
    --create table mig.dbo.TB (id integer, c varchar(10), constraint PK_TB primary key clustered (ID))
    GO
    Mon fichier test.csv est inchangé.
    Dans ce cas, en mettant l'option 'insert into ...' de la base à FALSE j'obtiens:
    Starting copy...
    Server Message: BICDEV1 - Msg 4806, Level 16, State 1:
    You cannot run the non-logged version of bulk copy in this database. Please chec
    k with the DBO.

    Server Message: BICDEV1 - Msg 3621, Level 10, State 0:
    Command has been aborted.

    CTLIB Message: - L1/O3/S0/N14/0/0:
    blk_init(): blk layer: CT library error: Failed when CT_Lib routine ct_results()
    called.
    blk_init failed.
    bcp copy in failed
    Question 1 : Est-il possible quand même de faire le bcp en mode slow dans ce cas sans changer d'option de base ?
    Question 2 : Comment vérifier le contenu du log pour m'assurer que l'opération y est ou n'y est pas tracée ?


    Du moment ou j'ajoute un index PK (clustered/nonclustered) bcp s'effectue bien avec l'option 'insert into ...' à FALSE.
    Passerait -il donc automatiquement en mode slow ?

    CONCLUSIONS:
    • BCP passe en mode fast uniquement quand il n'y a aucun index sur la table cible.
    • Indépendamment du mode, les contraintes d'intégrité ne sont pas vérifiées.


    Merci
    msomso

  15. #15
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Si l'option "select into" est à fausse, et que la table n'a pas d'index, alors on a le message d'erreur.

    Question: quelle est la version du serveur (select @@version) ?

    Le fast/slow ne peut pas être commandé depuis le client (à ma connaissance), le choix étant déterminé par la présence ou non d'indexes, et l'option "select into".

    Je précise que je n'ai pas beaucoup utilisé bcp en 15.x, je ne suis donc pas vraiment certain du comportement de toutes les combinaisons (indexe ou pas, etc).

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Bonjour.

    Je ne suis pas familier avec cette version unix et loin d'être un expert mais voici des idées qui me viennent à l'esprit en regardant la sortie de votre sp_sysmon.

    Évidemment ça ne sert à rien de modifier les paramètres du serveur s'il s'agit d'une situation particulière.

    Le I/O polling process count est déjà bas pourtant les checks returning I/O sont élevés...

    Beaucoup de context switch reliés au networking...
    Si vous procédez par bcp pouvez vous utiliser des paquets plus gros?

    Tous les inserts en APL Heap table... Mais pas de blocage au niveau des locks... Ça doit être ok.

    Cache hit ratio a 100%.. Ce n'est pas un problème de cache en lecture.

    99.6% sont des I/O très majoritairement en écriture dans proto_data1.dat
    mais presque rien dans proto_log.dat.. Est ce du fast bulk? ou c'est proto_data1.dat qui est utilisé pour data et log?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour

    Pour mpepplerl:
    je suis en ASE 15.0.2:
    1> select @@version
    2> go




    -------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    ----------------
    Adaptive Server Enterprise/15.0.2/EBF 14328/P/Sun_svr4/OS 5.8/ase1502/2486/64-b

    it/FBO/Thu May 24 12:18:26 2007
    Le fast/slow ne peut pas être commandé depuis le client (à ma connaissance), le choix étant déterminé par la présence ou non d'indexes, et l'option "select into".
    Oui, en effet. Mais parfois c'est bloquant -dommage de ne pas pouvoir forcer slow pour une table sans index, sans changer d'option de base .

    Pour dbaprod
    J'ai bien les segments data et log sur les devices séparés.
    Ma table cible possède un index et donc au vu de mes tests, le bcp doit s'effectuer en mode "slow".
    La taille du paquet réseau (-A) est à la valeur maxi supportée.
    ***
    De toute façon, suite à mes "découvertes" d'hier je vais devoir renoncer au bcp pour notre migration.
    Il nous faut absolument insérer nos données tout en validant les contraintes d'intégrité,
    or il s'avère que le bcp ne le fait ni en mode slow ni en mode fast.
    ***

    Merci
    msomso
    P.S.
    Pour identifier le mode de bcp, comment peut-on vérifier le contenu de la table log (logsegment ) ?

  18. #18
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    C'est un aparté - mais il serait probablement judicieux d'upgrader à 15.0.2 ESD 6.

    Pour le bcp - je ne sais pas si on peut directement voir cela dans syslogs - je suppose que c'est possible, mais décoder les enregistrement dans cette "table" est non-trivial - c'est un peu comme lire le redo-log d'Oracle...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Merci
    msomso

  20. #20
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 134
    Points : 168
    Points
    168
    Par défaut
    J'ai souvent vu des insert très lents à cause de contraintes d'intégrité mal indexées.
    C'est pourquoi je vous demandais de faire un insert manuellement en ayant préalablement lancé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set statistics io,time,plancost on
    set showplan on
    DBA sybase confirmé
    Cherche un poste sur Paris

Discussions similaires

  1. [Oracle 8]Optimisation insertion
    Par maverickbj dans le forum SQL
    Réponses: 7
    Dernier message: 29/11/2006, 10h55
  2. [Optimisation] Insert Select
    Par fab dans le forum Oracle
    Réponses: 7
    Dernier message: 25/07/2006, 21h09
  3. Optimisation insert select
    Par fab dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2006, 17h13
  4. [Optimisation] Insert en masse
    Par bobic dans le forum Oracle
    Réponses: 1
    Dernier message: 14/12/2005, 21h11
  5. [Optimisation] Insertion en masse !
    Par m-mas dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/10/2005, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo