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éveloppement SQL Server Discussion :

SERVEUR LIEE à AS400 très lent


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 35
    Points
    35
    Par défaut SERVEUR LIEE à AS400 très lent
    Bonjour,

    Je dois travailler sur une base de données DB2 dans un serveur AS400 disons SRV1, dont le volume est ~28.000 clients, ~200.000 articles, ~800 fournisseurs.
    J’ai un serveur MSSQL disons SRV2 dans lequel j’ai installé tous les outils IBM. J’ai fait un serveur lié dans MSSQL qui se connecte à SRV1.
    SRV1 et SRV2 sont dans le même réseau de type Gigabit.

    En plus de MSSQL, sur SRV2 est installé :
    - MSSQL studio pour faire mes requêtes TSQL ;
    - Cwbundbs.exe (un outil ibm), qui permet de faire une requête SQL sur l’AS400 ;

    Un SELECT * FROM ARTICLE depuis l’outil IBM se fais en 187 ms.
    La même requête dans MSSQL via le serveur lié prend 5 minutes !!!!!
    Les performances sont désastreuses…
    je veux améliorer les choses.

    J’ai testé en préfixant ma requête SQL par « SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; », mais je n’observe aucune amélioration.
    Savez-vous comment je peux améliorer les choses ?
    Merci de votre aide.


    Voici le code de mon serveur lié :

    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
    -- Suppression DB-LINK 
    IF  EXISTS (SELECT srvname FROM master.dbo.sysservers srv WHERE srv.srvid != 0 AND srv.srvname = N'#HOSTNAME#')
    EXEC master.dbo.sp_dropserver @server=N'#HOSTNAME#', @droplogins='droplogins'
    -- Creation DB-LINK
    EXEC master.dbo.sp_addlinkedserver @server = N'#HOSTNAME#', @srvproduct=N'IBMDASQL', @provider=N'IBMDASQL', @datasrc=N'#HOSTNAME#', @provstr=N'User Id=#USER#;Password=#PASSWORD#;', @catalog=N'#CATALOG#'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'collation compatible', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'data access', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'dist', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'pub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'rpc', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'rpc out', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'sub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'dpub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'connect timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'collation name', @optvalue=null
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'lazy schema validation', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'query timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'use remote collation', @optvalue=N'true'

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Pour avoir beaucoup de souci de lenteur avec l'AS400 comme tu as apparemment et les drivers OLEDB je suis toujours passé par l'installation des drivers ODBC et utilisation de ces drivers depuis SQL Server. J'ai observé un gain net de performance entre les deux types de drivers.

    ++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 35
    Points
    35
    Par défaut
    Bonjour mikedavem,

    Merci de ton retour.

    Puis-je te demander plus de précision quant au driver ODBC que tu utilises et qui va bien chez-toi ?

    Plus particulièrement, puis je te demander un copier/coller du clique droit sur ton serveur lié et l'option "générer un script du serveur de lié en tant que CREATE To" pour voir comment je dois paramétrer le driver ODBC.

    Merci d'avance,

    nico

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    après quelques recherches, je viens de faire un nouveau serveur lié fonctionnel avec ce que je crois être le driver ODBC directement. Sauf que, en terme de performances, c'est toujours la catastrophe


    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
    /****** Objet*:  LinkedServer [#HOSTNAME#]    Date de génération du script*: 10/08/2012 22:53:00 ******/
    EXEC master.dbo.sp_addlinkedserver @server = N'#HOSTNAME#', @srvproduct=N'{iSeries Access ODBC Driver}', @provider=N'MSDASQL', @provstr=N'DRIVER={iSeries Access ODBC Driver};SYSTEM=#HOSTNAME#;UID=#LOGIN#;PWD=#PASSWORD#;'
     /* For security reasons the linked server remote logins password is changed with ######## */
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'#HOSTNAME#',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
     
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'collation compatible', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'data access', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'dist', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'pub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'rpc', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'rpc out', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'sub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'connect timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'collation name', @optvalue=null
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'lazy schema validation', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'query timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'#HOSTNAME#', @optname=N'use remote collation', @optvalue=N'true'
    Je pense que la bonne qualité de ta connexion devrait provenir de ton bon paramétrage dans la connectionstring???

    Je vais creuser dans cette direction. Entre temps, si qq1 a une bonne piste, je suis preneur...

    Nico

Discussions similaires

  1. Serveur qui devient très lent : décryptage de logs
    Par Guillaume.G dans le forum Administration système
    Réponses: 1
    Dernier message: 23/12/2008, 11h25
  2. [WS2003] Mon serveur est très lent
    Par beegees dans le forum Windows Serveur
    Réponses: 13
    Dernier message: 29/03/2007, 13h53
  3. Connexion très lente à un serveur MySQL
    Par touff5 dans le forum JDBC
    Réponses: 3
    Dernier message: 29/09/2006, 14h13
  4. [Wamp] Serveur très lent
    Par nebule dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 17/05/2006, 08h56

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