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

Décisions SGBD Discussion :

Quel SGBD choisir : Oracle ou Microsoft SQL-Server ?


Sujet :

Décisions SGBD

  1. #61
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    un très gros avantage de oracle, c'est d'avoir le choix de l'os...
    Là encore, oui et non...
    Certes le choix peut paraître intéressant. Mais aujourd'hui Windows ou Linux, Aix, etc.... offrent les mêmes services tant en performances qu'en fiabilité. Sauf qu'à l'usage on voit que plus le SGBDR est capable d'aller sur divers OS, plus compliqué sont les syntaxes des commandes et plus difficile est le réglage (tuning) ou l'optimisation, car de nombreuses options de syntaxe dépendent de l'OS. Bref il y a pas photo... Le coût d'un DBA Oracle est à peut près de 40 à 100 % plus cher qu'un DBA SQL Server....

    Pour info, voici la syntaxe d'un CREATE DATABASE sous IBM DB2 et sous SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -- MS SQL Server :
    CREATE DATABASE database_name 
    [ ON 
        [ < filespec > [ ,...n ] ] 
        [ , < filegroup > [ ,...n ] ] 
    ] 
    [ LOG ON { < filespec > [ ,...n ] } ] 
    [ COLLATE collation_name ]
    [ FOR LOAD | FOR ATTACH ] 
     
    < filespec > ::= 
     
    [ PRIMARY ]
    ( [ NAME = logical_file_name , ] 
        FILENAME = 'os_file_name' 
        [ , SIZE = size ] 
        [ , MAXSIZE = { max_size | UNLIMITED } ] 
        [ , FILEGROWTH = growth_increment ] ) [ ,...n ]
     
    < filegroup > ::= 
     
    FILEGROUP filegroup_name < filespec > [ ,...n ]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    -- IBM DB2 :
    >>-CREATE--+-DATABASE-+--database-name-------------------------->
    1            '-DB-------'
    1 
    1 >--+-----------------------------+-----------------------------><
    1    +-AT DBPARTITIONNUM-----------+
    1    '-| Create Database options |-'
    1 
    1 Create Database options:
    1 
    1 |--+----------------------------+------------------------------->
    1    '-> AUTOMATIC STORAGE1 --+-> NO1 --+-'
    1                         '-> YES1 -'
    1 
    1 >--+---------------------------------------------+-------------->
    1    |     .-,---------.                           |
    1    |     V           |                           |
    1    '-> ON1 ----+-> path1 --+-+--+----------------------+-'
    1            '-> drive1 -'    '-> DBPATH ON1 --+-> path1 --+-'
    1                                      '-> drive1 -'
    1 
    1 >--+-----------------------+------------------------------------>
    1    '-ALIAS--database-alias-'
    1 
    1 >--+----------------------------------------------+------------->
    1    '-USING CODESET--codeset--TERRITORY--territory-'
    1 
    1 >--+-----------------------------------+------------------------>
    1    |                .-SYSTEM---------. |
    1    '-COLLATE USING--+-COMPATIBILITY--+-'
    1                     +-IDENTITY-------+
    1                     +-IDENTITY_16BIT-+
    1                     +-UCA400_NO------+
    1                     +-UCA400_LTH-----+
    1                     '-NLSCHAR--------'
    1 
    1    .-> PAGESIZE1 --> 40>61 -----------.
    1 >--+--------------------------+--+------------------+----------->
    1    '-> PAGESIZE1 --> integer1 --+---+-'  '-NUMSEGS--numsegs-'
    1                         '-> K1 -'
    1 
    1 >--+-------------------------------+---------------------------->
    1    '-DFT_EXTENT_SZ--dft_extentsize-'
    1 
    1 >--+---------------------------------------+-------------------->
    1    '-CATALOG TABLESPACE--| tblspace-defn |-'
    1 
    1 >--+------------------------------------+----------------------->
    1    '-USER TABLESPACE--| tblspace-defn |-'
    1 
    1 >--+-----------------------------------------+------------------>
    1    '-TEMPORARY TABLESPACE--| tblspace-defn |-'
    1 
    1 >--+------------------------+----------------------------------->
    1    '-WITH--"comment-string"-'
    1 
    1 >--+---------------------------------------------------------------------------------+--|
    1    |                                                                  .-DB ONLY----. |
    1    '-AUTOCONFIGURE--+---------------------------------------+--APPLY--+-DB AND DBM-+-'
    1                     |        .----------------------------. |         '-NONE-------'
    1                     |        V                            | |
    1                     '-USING----input-keyword--param-value-+-'
    1 
    1 tblspace-defn:
    1 
    1 |--MANAGED BY--------------------------------------------------->
    1 
    1                       .-,------------------.
    1                       V                    |
    1 >--+-SYSTEM USING--(----'container-string'-+--)--------------------------------+-->
    1    |                    .-,-----------------------------------------------.    |
    1    |                    V                                                 |    |
    1    +-DATABASE USING--(----+-FILE---+--'container-string'--number-of-pages-+--)-+
    1    |                      '-DEVICE-'                                           |
    1    '-> AUTOMATIC STORAGE1 ---------------------------------------------------------'
    1 
    1 >--+-----------------------------+------------------------------>
    1    '-EXTENTSIZE--number-of-pages-'
    1 
    1 >--+-------------------------------+---------------------------->
    1    '-PREFETCHSIZE--number-of-pages-'
    1 
    1 >--+----------------------------------+------------------------->
    1    '-OVERHEAD--number-of-milliseconds-'
    1 
    1 >--+--------------------------------------+--------------------->
    1    '-TRANSFERRATE--number-of-milliseconds-'
    1 
    1 >--+---------------------+--+-----------------------------+----->
    1    '-> AUTORESIZE1 --+-> NO1 --+-'  '-> INITIALSIZE1 --> integer1 --+-> K1 -+-'
    1                  '-> YES1 -'                            +-> M1 -+
    1                                                     '-> G1 -'
    1 
    1 >--+------------------------------------+----------------------->
    1    '-> INCREASESIZE1 --> integer1 --+-> PERCENT1 -+-'
    1                             '-+-> K1 -+---'
    1                               +-> M1 -+
    1                               '-> G1 -'
    1 
    1 >--+-----------------------------+------------------------------|
    1    '-> MAXSIZE1 --+-> NONE1 -----------+-'
    1               '-> integer1 --+-> K1 -+-'
    1                          +-> M1 -+
    1                          '-> G1 -'

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  2. #62
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Points : 342
    Points
    342
    Par défaut
    Je ne comprend pas la démonstration des syntaxes de creation de base entre sqlserver et DB2. Je pense que clairement l'une offre plus d'options que l'autres et doit donc à priori offrir plus de fonctionnalités.
    J'ai l'impression qu'au contraire tu souhaitais démontrer que l'une était plus simple que l'autre, mais dans ce cas, la palme doit revenir à Oracle V5 ou si je me souvient bien, la syntaxe était :




  3. #63
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Là encore, oui et non...
    Certes le choix peut paraître intéressant. Mais aujourd'hui Windows ou Linux, Aix, etc.... offrent les mêmes services tant en performances qu'en fiabilité.
    A +
    bah dans le top 500, déjà il y a pas beaucoup de windows
    et l'histore démontre aussi le contraire

  4. #64
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par robert_trudel Voir le message
    bah dans le top 500, déjà il y a pas beaucoup de windows
    et l'histore démontre aussi le contraire
    C'est quoi le top 500 ?
    Est ce que je peux avoir un lien ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #65
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par WOLO Laurent Voir le message
    C'est quoi le top 500 ?
    Est ce que je peux avoir un lien ?
    ben les 500 plus rapide ordinateurs sur la planète....

    http://www.top500.org/


    pour juin 2008
    http://www.top500.org/stats/list/31/osfam

  6. #66
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Points : 342
    Points
    342
    Par défaut
    Il ne faudrait pas que cette discussion dérive de Oracle versus SqlServer vers Windows versus LINUX.
    Déjà qu'Oracle SqlServer c'est pas mal Ayathola et guerre de religion, alors Windows Linux !

  7. #67
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    richesse fonctionnelle = complexité.

    De toute façon, chaque base à sa spécificité, son public/marché cible...
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  8. #68
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Citation Envoyé par SQLpro
    Je vous met au défit de réaliser en une requête SQL sous Oracle l'exemple de parcours de graphe que je donne dans cet article : http://sqlpro.developpez.com/cours/s...te-recursives/
    Recherche du plus court chemin dans un réseau routier...
    Chiche ...

    Pour descendre le parcours avec CONNECT BY c'est cadeau, et je pensais utiliser une fenetre pour totaliser les km. Mais evidemment il y a une embrouille ... Il y a des sommets avec plusieurs arrêtes. Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM (km) OVER (ORDER BY rn RANGE lvl-1 PRECEDING) AS distance
    donne un résultat KO.

    J'ai pas voulu tricher en tripotant la chaine ''distance'', j'ai essayer de trouver une solution en SQL. Normalement c'est bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SET PAGESIZE 0
    SET LINE 132
    WITH Distance AS 
    (
    SELECT	ROWNUM AS rn,
    	LEVEL AS lvl,
    	CONNECT_BY_ROOT depart || SYS_CONNECT_BY_PATH (destination, ',') AS trajet,
    	SYS_CONNECT_BY_PATH (km, '+') AS distance,
    	CONNECT_BY_ROOT depart AS depart,
    	destination,
    	km	
    FROM	Carte 
    CONNECT BY NOCYCLE PRIOR destination = depart	
    ) 
    SELECT 	CAST (Tmp.trajet AS VARCHAR(60)),
    	CAST (Tmp.distance AS VARCHAR(30)),
    	CAST (SUM (Distance.km) AS VARCHAR(4))
    FROM
    (
    SELECT	Final.trajet,
    	Final.distance,
    	Partiel.lvl,
    	MAX(Partiel.rn) AS rn
    FROM	Distance Final
    INNER JOIN Distance Partiel
    ON	Partiel.rn <= Final.rn
    AND	Partiel.lvl <= Final.lvl
    WHERE	Final.depart = 'PARIS'
    AND	Final.destination = 'TOULOUSE'
    GROUP BY Final.trajet,
    	Final.distance,
    	Partiel.lvl
    ) Tmp
    INNER JOIN Distance 
    ON	Tmp.rn = Distance.rn
    GROUP BY Tmp.trajet,
    	Tmp.distance
    ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CAST(TMP.TRAJETASVARCHAR(60))                    CAST(TMP.DISTANC CAST
    ------------------------------------------------ ---------------- ----
    PARIS,LYON,MONTPELLIER,TOULOUSE              +461,01+357,59+241,3  1060
    PARIS,CLERMONT-FERRAND,TOULOUSE              +422,29+375,6         798
    PARIS,CLERMONT-FERRAND,MONTPELLIER,TOULOUSE  +422,29+335,23+241,3  999

  9. #69
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par TheLeadingEdge Voir le message
    Chiche ...
    ...


    Cet homme est courageux !

  10. #70
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est beau, j'en ai la larme à l'oeil


  11. #71
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Il me semble que vous vous êtes faits piéger par le fait que vous n'avez pas mis les chemins inverses. Donc vous êtes dans un arbre et non un graphe....

    Tentez la chose avec les données complétes : les chemins aller + les retours...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  12. #72
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,

    Citation Envoyé par SQLpro
    vous n'avez pas mis les chemins inverses. Donc vous êtes dans un arbre et non un graphe....
    C'est déjà un graphe.Il y a plusieurs arcs qui arrivent aux sommets Montpellier et Tls. Pourquoi un graphe serait nécessairement cyclique ?

    Citation Envoyé par SQLpro
    Tentez la chose avec les données complétes : les chemins aller + les retours...
    ...ça marche aussi. (Pour autant même s'il n'est pas dans la liste des itinéraires, je pense que c'est mieux par l'A20 )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SQL> select * from carte;
    PARIS            CLERMONT-FERRAND	422,29
    PARIS            LYON                   463,34
    CLERMONT-FERRAND LYON                   206,11
    CLERMONT-FERRAND MONTPELLIER		335,23
    CLERMONT-FERRAND TOULOUSE		375,6
    LYON             CLERMONT-FERRAND	205,04
    LYON             MONTPELLIER		303,6
    MONTPELLIER      CLERMONT-FERRAND	332,92
    MONTPELLIER      LYON                   301,66
    MONTPELLIER      TOULOUSE		241,3
    TOULOUSE         CLERMONT-FERRAND	374,82
    TOULOUSE         MONTPELLIER		242,34
    12 ligne(s) sélectionnée(s).
    Ecoulé : 00 :00 :00.32
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PARIS,CLERMONT-FERRAND,TOULOUSE                    +422,29+375,6               797,89
    PARIS,CLERMONT-FERRAND,MONTPELLIER,TOULOUSE        +422,29+335,23+241,3        998,82
    PARIS,LYON,MONTPELLIER,TOULOUSE                    +463,34+303,6+241,3         1008,2
    PARIS,LYON,CLERMONT-FERRAND,TOULOUSE               +463,34+205,04+375,6        1044
    PARIS,CLERMONT-FERRAND,LYON,MONTPELLIER,TOULOUSE   +422,29+206,11+303,6+241,3  1173,3
    PARIS,LYON,CLERMONT-FERRAND,MONTPELLIER,TOULOUSE   +463,34+205,04+335,23+241,3 1244,9
    PARIS,LYON,MONTPELLIER,CLERMONT-FERRAND,TOULOUSE   +463,34+303,6+332,92+375,6  1475,5
    7 ligne(s) sélectionnée(s).
    Ecoulé : 00 :00 :00.31
    Du coup voilà ce que ça donne appliqué au TSM.
    Citation Envoyé par Elaine Rich
    Le problème du voyageur de commerce est de trouver le chemin le plus court qui passe par chaque ville une fois exactement.
    j'ai tiré les données (et la définition) de I.A. de Elaine Rich. (J'ai préféré évité le trajet ''Arad Bucarest'' ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    SQL> select * from carte;
    Boston		Boston		0
    Boston		New-York City	250
    Boston		Miami		1450
    Boston		Dallas		1700
    Boston		San-Francisco	3000
    New-York City	Boston		250
    New-York City	New-York City	0
    New-York City	Miami		1200
    New-York City	Dallas		1500
    New-York City	San-Francisco	2900
    Miami		Boston		1450
    Miami		New-York City	1200
    Miami		Miami		0
    Miami		Dallas		1600
    Miami		San-Francisco	3300
    Dallas		Boston		1700
    Dallas		New-York City	1500
    Dallas		Miami		1600
    Dallas		Dallas		0
    Dallas		San-Francisco	1700
    San-Francisco	Boston		3000
    San-Francisco	New-York City	2900
    San-Francisco	Miami		3300
    San-Francisco	Dallas		1700
    San-Francisco	San-Francisco	0
    25 ligne(s) sélectionnée(s).
    Ecoulé : 00 :00 :00.46
    Il suffit de modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE      	Final.depart = 'PARIS'
    AND        	Final.destination = 'TOULOUSE'
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE	Final.destination = Final.depart
    pour obtenir les plus courts trajets au départ de chaque ville.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [...]
    Boston,Miami,Dallas,San-Francisco,New-York City,Boston         +1450+1600+1700+2900+250   7900
    San-Francisco,Dallas,Miami,New-York City,Boston,San-Francisco  +1700+1600+1200+250+3000   7750
    San-Francisco,Boston,New-York City,Miami,Dallas,San-Francisco  +3000+250+1200+1600+1700   7750
    New-York City,Miami,Dallas,San-Francisco,Boston,New-York City  +1200+1600+1700+3000+250   7750
    New-York City,Boston,San-Francisco,Dallas,Miami,New-York City  +250+3000+1700+1600+1200   7750
    Miami,New-York City,Boston,San-Francisco,Dallas,Miami          +1200+250+3000+1700+1600   7750
    Miami,Dallas,San-Francisco,Boston,New-York City,Miami          +1600+1700+3000+250+1200   7750
    Dallas,San-Francisco,Boston,New-York City,Miami,Dallas         +1700+3000+250+1200+1600   7750
    Dallas,Miami,New-York City,Boston,San-Francisco,Dallas         +1600+1200+250+3000+1700   7750
    Boston,San-Francisco,Dallas,Miami,New-York City,Boston         +3000+1700+1600+1200+250   7750
    Boston,New-York City,Miami,Dallas,San-Francisco,Boston         +250+1200+1600+1700+3000   7750
    120 ligne(s) sélectionnée(s).
    Ecoulé : 00 :00 :02.98

  13. #73
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Encore une fois dans la table ne figure pas les chemins inverses... Je te cite :
    SQL> SELECT * FROM carte;
    PARIS CLERMONT-FERRAND 422,29
    PARIS LYON 463,34
    CLERMONT-FERRAND LYON 206,11
    CLERMONT-FERRAND MONTPELLIER 335,23
    CLERMONT-FERRAND TOULOUSE 375,6
    LYON CLERMONT-FERRAND 205,04
    LYON MONTPELLIER 303,6
    MONTPELLIER CLERMONT-FERRAND 332,92
    MONTPELLIER LYON 301,66
    MONTPELLIER TOULOUSE 241,3
    TOULOUSE CLERMONT-FERRAND 374,82
    TOULOUSE MONTPELLIER 242,34
    Il manque par exemple :
    CLERMONT-FERRAND >>> PARIS 422,29
    LYON >>> PARIS 463,34
    etc...

    Allez, courage... Oracle va peut être te permettre de faire cela avec une requête encore plus tordue... ;-)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  14. #74
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Ola Fred,

    Citation Envoyé par SQLPro
    Encore une fois dans la table ne figure pas les chemins inverses... Je te cite :
    On a déjà eu cette discussion il me semble. C'est pas cool de déterrer des vieux topics pour polémiquer.
    Si tu lis attentivement ce que tu as cité tu constateras qu'il existe déjà des aller-retours.

    CLERMONT-FERRAND LYON 206,11
    [..]
    LYON CLERMONT-FERRAND 205,04
    et
    LYON MONTPELLIER 303,6
    [..]
    MONTPELLIER LYON 301,66
    et aussi
    MONTPELLIER TOULOUSE 241,3
    [..]
    TOULOUSE MONTPELLIER 242,34
    et encore
    CLERMONT-FERRAND MONTPELLIER 335,23
    [..]
    CLERMONT-FERRAND TOULOUSE 375,6
    C'est donc 1 graphe valué orienté cyclique comportant plusieurs composantes fortement connexes.
    Ajouter 1 ou plusieurs arêtes ne changera rien à la chose.
    La requête déjà fournie retournera toujours un résultat juste au problème du plus court chemin.
    Donc avec Oracle on peut gèrer les arbres, mais aussi les graphes. Et même les treillis (qui pour le coup est aussi un cycle Hamiltonien) comme dans l'exemple du ''traveller saleman problem de E. Rich'' ci-dessus.
    [HS]Par contre dans ton article (pas mal fait par ailleurs) tu parles du ''problème du voyageur de commerce''. Je ne suis pas d'accord. Il ne s'agit que du plus court chemin ainsi que tu le dis dans cette discussion. [/HS]

    Citation Envoyé par SQLPro
    Allez, courage... Oracle va peut être te permettre de faire cela avec une requête encore plus tordue... ;-)
    chiche ... Tu sais bien que je ne vais pas résister. Mais c'est juste pour le fun. La requête que j'ai donné fonctionne trés bien.
    Dans ma 1ere réponse j'ai dit que je ne voulais pas bricoler la chaîne trajets et que j'avais choisi de le faire en SQL.
    (Petit apparté, si tu trouve tordu un classique appareillage maitre/détail, comment tu qualifies une division relationnelle alors ?)
    En fait j'avais d'abord utilisé les expressions régulières pour faire le total.
    Voilà ce que ça donne (et j'ai rajouté les 2 aller-retours de ton post, dsl, je n'ai pas trouvé le etc..)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    SQL> SELECT     *
      2  FROM               Carte
      3  ;
    PARIS                            CLERMONT-FERRAND                        422
    PARIS                            LYON                                    463
    CLERMONT-FERRAND                 PARIS                                   422
    CLERMONT-FERRAND                 LYON                                    206
    CLERMONT-FERRAND                 MONTPELLIER                             335
    CLERMONT-FERRAND                 TOULOUSE                                375
    LYON                             PARIS                                   463
    LYON                             CLERMONT-FERRAND                        205
    LYON                             MONTPELLIER                             303
    MONTPELLIER                      CLERMONT-FERRAND                        332
    MONTPELLIER                      LYON                                    301
    MONTPELLIER                      TOULOUSE                                241
    TOULOUSE                         CLERMONT-FERRAND                        374
    TOULOUSE                         MONTPELLIER                             242
     
    14 ligne(s) sÚlectionnÚe(s).
     
    SQL> WITH T AS
      2  (
      3  SELECT     CONNECT_BY_ROOT depart || SYS_CONNECT_BY_PATH (destination,
      4             SYS_CONNECT_BY_PATH (km, '+') AS x
      5  FROM               Carte
      6  WHERE      CONNECT_BY_ROOT depart = 'PARIS'
      7  AND                destination = 'TOULOUSE'
      8  CONNECT BY NOCYCLE PRIOR destination = depart
      9  AND                destination <> CONNECT_BY_ROOT depart
     10  )
     11  SELECT     CAST (t AS VARCHAR(48)),
     12             CAST (x AS VARCHAR(16)),
     13             CAST (SUM (CASE SUBSTR(x, LEVEL, 1)
     14             WHEN '+'
     15             THEN REGEXP_SUBSTR (SUBSTR (x, LEVEL, LENGTH(x)), '^[+][0-9
     16             END) AS VARCHAR(8) )
     17  FROM               T
     18  GROUP BY   t,
     19             x
     20  CONNECT BY  x = CONNECT_BY_ROOT x
     21  AND                LEVEL <= LENGTH(x)
     22  ;
    PARIS,CLERMONT-FERRAND,LYON,MONTPELLIER,TOULOUSE +422+206+303+241 1172
    PARIS,LYON,MONTPELLIER,CLERMONT-FERRAND,TOULOUSE +463+303+332+375 1473
    PARIS,CLERMONT-FERRAND,MONTPELLIER,TOULOUSE      +422+335+241     998
    PARIS,LYON,CLERMONT-FERRAND,MONTPELLIER,TOULOUSE +463+205+335+241 1244
    PARIS,LYON,MONTPELLIER,TOULOUSE                  +463+303+241     1007
    PARIS,CLERMONT-FERRAND,TOULOUSE                  +422+375         797
    PARIS,LYON,CLERMONT-FERRAND,TOULOUSE             +463+205+375     1043
     
    7 ligne(s) sÚlectionnÚe(s).

  15. #75
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Perso je ne suis pas pour un SGBD qui tourne uniquement sur une seule plateforme.
    Chaque SGBD a ces avantages et ces inconvénients sa dépend de ce que l'on veut en faire
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  16. #76
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par TheLeadingEdge Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    SQL> select * from carte;
    Boston		Boston		0
    Boston		New-York City	250
    Boston		Miami		1450
    Boston		Dallas		1700
    Boston		San-Francisco	3000
    New-York City	Boston		250
    New-York City	New-York City	0
    New-York City	Miami		1200
    New-York City	Dallas		1500
    New-York City	San-Francisco	2900
    Miami		Boston		1450
    Miami		New-York City	1200
    Miami		Miami		0
    Miami		Dallas		1600
    Miami		San-Francisco	3300
    Dallas		Boston		1700
    Dallas		New-York City	1500
    Dallas		Miami		1600
    Dallas		Dallas		0
    Dallas		San-Francisco	1700
    San-Francisco	Boston		3000
    San-Francisco	New-York City	2900
    San-Francisco	Miami		3300
    San-Francisco	Dallas		1700
    San-Francisco	San-Francisco	0
    25 ligne(s) sélectionnée(s).
    Ecoulé : 00 :00 :00.46
    46ms pour un select simple qui renvoie 25lignes.... c'est moi ou c'est ultra lent ?

  17. #77
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Là encore, oui et non...
    Certes le choix peut paraître intéressant. Mais aujourd'hui Windows ou Linux, Aix, etc.... offrent les mêmes services tant en performances qu'en fiabilité. Sauf qu'à l'usage on voit que plus le SGBDR est capable d'aller sur divers OS, plus compliqué sont les syntaxes des commandes et plus difficile est le réglage (tuning) ou l'optimisation, car de nombreuses options de syntaxe dépendent de l'OS. Bref il y a pas photo... Le coût d'un DBA Oracle est à peut près de 40 à 100 % plus cher qu'un DBA SQL Server....

    Pour info, voici la syntaxe d'un CREATE DATABASE sous IBM DB2 et sous SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -- MS SQL Server :
    CREATE DATABASE database_name 
    [ ON 
        [ < filespec > [ ,...n ] ] 
        [ , < filegroup > [ ,...n ] ] 
    ] 
    [ LOG ON { < filespec > [ ,...n ] } ] 
    [ COLLATE collation_name ]
    [ FOR LOAD | FOR ATTACH ] 
     
    < filespec > ::= 
     
    [ PRIMARY ]
    ( [ NAME = logical_file_name , ] 
        FILENAME = 'os_file_name' 
        [ , SIZE = size ] 
        [ , MAXSIZE = { max_size | UNLIMITED } ] 
        [ , FILEGROWTH = growth_increment ] ) [ ,...n ]
     
    < filegroup > ::= 
     
    FILEGROUP filegroup_name < filespec > [ ,...n ]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    -- IBM DB2 :
    >>-CREATE--+-DATABASE-+--database-name-------------------------->
    1            '-DB-------'
    1 
    1 >--+-----------------------------+-----------------------------><
    1    +-AT DBPARTITIONNUM-----------+
    1    '-| Create Database options |-'
    1 
    1 Create Database options:
    1 
    1 |--+----------------------------+------------------------------->
    1    '-> AUTOMATIC STORAGE1 --+-> NO1 --+-'
    1                         '-> YES1 -'
    1 
    1 >--+---------------------------------------------+-------------->
    1    |     .-,---------.                           |
    1    |     V           |                           |
    1    '-> ON1 ----+-> path1 --+-+--+----------------------+-'
    1            '-> drive1 -'    '-> DBPATH ON1 --+-> path1 --+-'
    1                                      '-> drive1 -'
    1 
    1 >--+-----------------------+------------------------------------>
    1    '-ALIAS--database-alias-'
    1 
    1 >--+----------------------------------------------+------------->
    1    '-USING CODESET--codeset--TERRITORY--territory-'
    1 
    1 >--+-----------------------------------+------------------------>
    1    |                .-SYSTEM---------. |
    1    '-COLLATE USING--+-COMPATIBILITY--+-'
    1                     +-IDENTITY-------+
    1                     +-IDENTITY_16BIT-+
    1                     +-UCA400_NO------+
    1                     +-UCA400_LTH-----+
    1                     '-NLSCHAR--------'
    1 
    1    .-> PAGESIZE1 --> 40>61 -----------.
    1 >--+--------------------------+--+------------------+----------->
    1    '-> PAGESIZE1 --> integer1 --+---+-'  '-NUMSEGS--numsegs-'
    1                         '-> K1 -'
    1 
    1 >--+-------------------------------+---------------------------->
    1    '-DFT_EXTENT_SZ--dft_extentsize-'
    1 
    1 >--+---------------------------------------+-------------------->
    1    '-CATALOG TABLESPACE--| tblspace-defn |-'
    1 
    1 >--+------------------------------------+----------------------->
    1    '-USER TABLESPACE--| tblspace-defn |-'
    1 
    1 >--+-----------------------------------------+------------------>
    1    '-TEMPORARY TABLESPACE--| tblspace-defn |-'
    1 
    1 >--+------------------------+----------------------------------->
    1    '-WITH--"comment-string"-'
    1 
    1 >--+---------------------------------------------------------------------------------+--|
    1    |                                                                  .-DB ONLY----. |
    1    '-AUTOCONFIGURE--+---------------------------------------+--APPLY--+-DB AND DBM-+-'
    1                     |        .----------------------------. |         '-NONE-------'
    1                     |        V                            | |
    1                     '-USING----input-keyword--param-value-+-'
    1 
    1 tblspace-defn:
    1 
    1 |--MANAGED BY--------------------------------------------------->
    1 
    1                       .-,------------------.
    1                       V                    |
    1 >--+-SYSTEM USING--(----'container-string'-+--)--------------------------------+-->
    1    |                    .-,-----------------------------------------------.    |
    1    |                    V                                                 |    |
    1    +-DATABASE USING--(----+-FILE---+--'container-string'--number-of-pages-+--)-+
    1    |                      '-DEVICE-'                                           |
    1    '-> AUTOMATIC STORAGE1 ---------------------------------------------------------'
    1 
    1 >--+-----------------------------+------------------------------>
    1    '-EXTENTSIZE--number-of-pages-'
    1 
    1 >--+-------------------------------+---------------------------->
    1    '-PREFETCHSIZE--number-of-pages-'
    1 
    1 >--+----------------------------------+------------------------->
    1    '-OVERHEAD--number-of-milliseconds-'
    1 
    1 >--+--------------------------------------+--------------------->
    1    '-TRANSFERRATE--number-of-milliseconds-'
    1 
    1 >--+---------------------+--+-----------------------------+----->
    1    '-> AUTORESIZE1 --+-> NO1 --+-'  '-> INITIALSIZE1 --> integer1 --+-> K1 -+-'
    1                  '-> YES1 -'                            +-> M1 -+
    1                                                     '-> G1 -'
    1 
    1 >--+------------------------------------+----------------------->
    1    '-> INCREASESIZE1 --> integer1 --+-> PERCENT1 -+-'
    1                             '-+-> K1 -+---'
    1                               +-> M1 -+
    1                               '-> G1 -'
    1 
    1 >--+-----------------------------+------------------------------|
    1    '-> MAXSIZE1 --+-> NONE1 -----------+-'
    1               '-> integer1 --+-> K1 -+-'
    1                          +-> M1 -+
    1                          '-> G1 -'
    A +
    Désolé, mais c'est quoi ces comparaisons à l'emporte-pièce ?
    Microsoft a simplement pris l'option de simplifier au maximum les syntaxes par rapport à son public.

    Et d'ailleurs, d'entrée de jeu, la comparaison ne tient pas puisque l'on compare la création de 2 objets qui ont même nom (database) mais qui sont physiquement totallement différents (la base Oracle devrait être comparée à la création de la base MS-SQL y.c. les bases systèmes, doit donc à la création de l'instance)

    Personne ne dit qu'Oracle est plus simple, en terme de syntaxe et d'administration. C'est un choix architectural et historique qui veut sans doute ça.

    Celui qui aime la "mécanique" choisira sans doute la boîte manuelle rouge. Celui qui se fout de la technique et qui ne recherche pas à tuner son moteur préférera la bluebox à boîtier automatique...

    Une chose est en tout cas sûre : l'automatique consomme moins de fuel en terrain mixte.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  18. #78
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    En effet, à comparer il faut comparer la création des instances... mais là encore MS SQL est plus simple

    Du reste, le déplacement d'une instance est bien plus simple sous Oracle :
    - Génération du script de création du controlfiles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
    - Correction des chemins et éventuellement renommage de l'instance
    - ORADIM pour créer le service sous windows si on change de serveur ou de nom d'instance
    - exécution du script

    J'en ai fait 3 en 10 minutes la semaine dernière

  19. #79
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Celui qui aime la "mécanique" choisira sans doute la boîte manuelle rouge. Celui qui se fout de la technique et qui ne recherche pas à tuner son moteur préférera la bluebox à boîtier automatique...
    reste qu'aujourd'hui les formules 1 sont équipées de boite semi automatique tel que celle de Wolkswagen Audi DSG : commutation de vitesse en moins d'1/10 de seconde. De plus elles consomment en général moins que le pilotage en boîte manuelle car il n'y a presque jamais de patinage (double embrayage). Enfin il existe une position pépère et une sport.
    Dans les boîtes les plus évoluées (très haut de gamme), il est possible de demander au système d'apprendre le style de conduite du pilote afin d'en reproduire les effets (boîte intelligente)

    Bref, je ne suis pas sûr qu'aujourd'hui la boîte manuelle soit d'un quelconque intérêt !

    Autrement dit, le système se simplifie par les automatismes ce qui ne veut pas dire qu'il n'y a plus rien à faire, mais que les réglages sont autres !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  20. #80
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Donc à la question : Choisir Oracle ou Microsoft SQL-Server ?

    SQLPro répond VolksWagen... (et WolksWagen ) c'est bien ça ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/06/2014, 18h31
  2. Réponses: 0
    Dernier message: 25/08/2010, 13h19
  3. [Débat] Choisir InterBase/Firebird ou Microsoft SQL-SERVER ?
    Par asenaici dans le forum Décisions SGBD
    Réponses: 90
    Dernier message: 19/03/2009, 20h51
  4. Quel SGBD choisir ? MySQL ou SQL-Server ?
    Par S_H_I dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/10/2006, 16h03
  5. Quel outil choisir pour un développement SQL-Server ?
    Par Mouse dans le forum Débats sur le développement - Le Best Of
    Réponses: 23
    Dernier message: 12/08/2003, 06h23

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