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

Administration SQL Server Discussion :

Processeur / Ram / Version de SQL / Fréquence


Sujet :

Administration SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Points : 51
    Points
    51
    Par défaut Processeur / Ram / Version de SQL / Fréquence
    Bonjour,

    j’essaye de comprendre les implications des différents composants de mes config pour essayer d’optimiser l’utilisation d’un logiciel.

    Mon logiciel travail avec une base SQL pour le moment de 13 Go.

    Un des traitements de mon logiciel (un recalcule de certaine valeur) met sur la CONFIG1 42 Heures environ.

    Après appel à l’éditeur du logiciel cela lui paraît normale.

    Je me rends compte que lors de ce recalcule seul un cœur fonctionne

    J’ai donc préparé vite fait une machine de test la CONFIG2 et la mon recalcule met 32 Heures …. (le calcul s’effectue toujours sur 1 cœur)

    J’ai lu beaucoup de chose sur le net, plus de ram une fréquence plus élever des processeurs, une reconfig des options SQL Server etc…

    Je me demandais donc qu’elle serait le meilleur compromis pour diminuer ce temps, faut-il pour ce genre de calcul un processeur XEON 5698 qui a moins de cœur mais une fréquence de 4.40 GHz ou plus de RAM genre 128 go etc…

    Merci de votre aide ou de vos pistes.

    Thierry


    CONFIG 1
    Bi processeur XEON 5650 - 2.67 GHz
    24 Cœurs
    32 Go de RAM
    RAID 0+1 600 Go SAS 15 000 Tours
    Windows Serveur 2008 R2 Standard
    SQL Server 2008 SP3

    CONFIG 2
    I7 2600 - 3.40 GHz
    8 Cœurs
    4 Go de RAM
    Disque dur SSD 500 Go
    Windows Server 2012 R2
    SQL Server 2012

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Ce qu'il convient de savoir c'est comment se traitement est effectué de manière logique :
    • est-il traité côté client ?
    • y a t-il des curseurs ?
    • est-ce fait par des requêtes ?
    • y a t-il des procédures stockées ?


    Bref investiguer le code permettra de vous orienter sur la solution à suivre.
    Comme vous constatez qu'il n'utilise qu'un seul cœur, je pariirait que c'est fait à base de curseur essentiellement et probablement côté client.

    Pour info il y a 5 ans, j'ai transformé un tel traitement qui mettait 8 heures en procédures stockées côté serveur et nous comme passé à 20 minutes. Avec une bonne indexation nous sommes passés à 8. En refaisant le modèle nous sommes passé à 2. En changeant de machine, nous sommes passé à moins de 30 secondes et en faisant du In Memory, nous devrions passer à 2 secondes....

    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/ * * * * *

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    Effectivement cela se lance coté Client.
    J'ai fait une trace en SQL pendant se recalcule et j'ai pas vue de CURSOR.
    Ce recalcule exécute des procédure stocké.

    Merci pour votre aide

    Thierry

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Pour info voici ce qui tourne en boucle pendant au moins 12 Heures déjà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    exec sp_executesql N'SELECT * FROM F_LOTSERIE WHERE cbMarq = @P1',N'@P1 int',9595165
    exec CB_NextILS_STOCK2 9595165
    exec CB_EqGreaterIDL_NO 23961989
    exec CB_EqGreaterIDL_NO 23961321
    exec CB_EqGreaterILS_NOIN 23961321,0
    il s'agit de recalcule de stock article et ses 5 lignes déjà il me les fait autant de fois que d'articles.....

    Merci

    Thierry

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Dans la définition de la trace, quels événements avez-vous choisi ?
    Y a-t-il des curseurs dans le code des procédures stockées ?
    Les statistiques et index de la base de données sont-ils maintenus régulièrement ?

    En tout cas, le fait que l'éditeur trouve normal qu'un traitement dure 42h est assez choquant !

    @++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Re,

    Juste une précision les codes travaillent surtout sur 2 tables de 6 millions de lignes environ

    voici les différents codes des procédures stockées

    pour la procédure stockée :
    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
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[CB_EqGreaterILS_STOCK2] @cbAR_Ref varbinary(20),@LS_MvtStock smallint,@LS_LotEpuise smallint,@cbLS_NoSerie varbinary(32) AS
    BEGIN
    	SET NOCOUNT ON;
    	IF EXISTS(SELECT TOP 1 'A' FROM F_LOTSERIE WHERE cbAR_Ref = @cbAR_Ref AND LS_MvtStock = @LS_MvtStock AND LS_LotEpuise = @LS_LotEpuise AND cbLS_NoSerie >= @cbLS_NoSerie)
    		SELECT TOP 1 * FROM F_LOTSERIE WHERE cbAR_Ref = @cbAR_Ref AND LS_MvtStock = @LS_MvtStock AND LS_LotEpuise = @LS_LotEpuise AND cbLS_NoSerie >= @cbLS_NoSerie ORDER BY cbAR_Ref,LS_MvtStock,LS_LotEpuise,cbLS_NoSerie,cbMarq;
    	ELSE
    		IF EXISTS(SELECT TOP 1 'A' FROM F_LOTSERIE WHERE cbAR_Ref = @cbAR_Ref AND LS_MvtStock = @LS_MvtStock AND LS_LotEpuise > @LS_LotEpuise)
    		SELECT TOP 1 * FROM F_LOTSERIE WHERE cbAR_Ref = @cbAR_Ref AND LS_MvtStock = @LS_MvtStock AND LS_LotEpuise > @LS_LotEpuise ORDER BY cbAR_Ref,LS_MvtStock,LS_LotEpuise,cbLS_NoSerie,cbMarq;
    	ELSE
    		IF EXISTS(SELECT TOP 1 'A' FROM F_LOTSERIE WHERE cbAR_Ref = @cbAR_Ref AND LS_MvtStock > @LS_MvtStock)
    		SELECT TOP 1 * FROM F_LOTSERIE WHERE cbAR_Ref = @cbAR_Ref AND LS_MvtStock > @LS_MvtStock ORDER BY cbAR_Ref,LS_MvtStock,LS_LotEpuise,cbLS_NoSerie,cbMarq;
    	ELSE
    		SELECT TOP 1 * FROM F_LOTSERIE WHERE cbAR_Ref > @cbAR_Ref ORDER BY cbAR_Ref,LS_MvtStock,LS_LotEpuise,cbLS_NoSerie,cbMarq;
    END;

    pour la procédure stockée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[CB_EqGreaterIDL_NO] @DL_No int AS
    BEGIN
    	SET NOCOUNT ON;
    	SELECT TOP 1 * FROM F_DOCLIGNE WHERE DL_No >= @DL_No ORDER BY DL_No,cbMarq;
    END;
    pour la procédure stockée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[CB_EqGreaterILS_NOIN] @DL_NoIn int,@DL_NoOut int AS
    BEGIN
    	SET NOCOUNT ON;
    	IF EXISTS(SELECT TOP 1 'A' FROM F_LOTSERIE WHERE DL_NoIn = @DL_NoIn AND DL_NoOut >= @DL_NoOut)
    		SELECT TOP 1 * FROM F_LOTSERIE WHERE DL_NoIn = @DL_NoIn AND DL_NoOut >= @DL_NoOut ORDER BY DL_NoIn,DL_NoOut,cbMarq;
    	ELSE
    		SELECT TOP 1 * FROM F_LOTSERIE WHERE DL_NoIn > @DL_NoIn ORDER BY DL_NoIn,DL_NoOut,cbMarq;
    END;
    Une maintenance toutes les nuits est faite pour les index et statistique, pour la trace j'ai tout laissé par défaut rien sélectionné de spécial.

    Moi aussi je trouve choquant la réponse de l'éditeur surtout quand on connait le prix du logiciel.....

    Merci

    Thierry

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Citation Envoyé par Avatar69 Voir le message
    Moi aussi je trouve choquant la réponse de l'éditeur surtout quand on connait le prix du logiciel.....
    Moi, cela ne m'étonne pas : dire le contraire serait admettre la piètre qualité de ce qu'il vous a vendu a prix d'or, et donc l'obliger à revoir son code (en commençant par enlever ces immondes SELECT *).

    Pour la première sp, on pourrait remplacer les sept requêtes par une seule.

    Mais clairement, il semble que le traitement ne soit pas ensembliste puisqu'il traite les lignes indépendamment dans une boucle.
    Si vous n'avez pas de curseur, il se peut que le processus aille chercher la première ligne a traiter qu'il trouve (d'où tout ces TOP(1)) et que la ligne soit flagguée après traitement, pour passer à la suivante...

    mon avis : c'est moche !

    Si tout cela est correct, alors vous pourrez vous exténuer à triturer votre config pour en extraire le meilleur, vous n'obtiendrez jamais de bon temps de traitement, car à mon humble avis, c'est bien le code qu'il faut revoir.

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    C'est même pire que du curseur, car cela oblige à relancer la requête pour n'en extraire qu'une seule ligne à traiter à chaque fois.
    Un peu comme si, face à une botte de foin, on extrayait une aiguille que l'on traiter ailleurs, puis que l'on revienne près de la botte de foin afin de renouveler le processus jusqu'à plus soif.

    Y'a certainement pas plus stupide pour tuer les performances !

    Vous pourrez donc toujours tenter de rajouter toutes les ressources de la terre sur votre serveur, cela n'utilisera jamais qu'un seul cœur (pas de parallélisme possible pour aller chercher une seule ligne et la traiter). Le seul paramètre de jeu, c'est la vitesse du processeur, bref, peu de marge !

    D'ailleurs calculons d'après vos éléments :
    42h/ 32 h = 1,31
    3,4 Ghz / 2,67 Ghz = 1,27

    CQFD !

    Pour moi, si je faisait un audit, je dirais qu'il y a malfaçon de ce logiciel pour cause de mauvaise utilisation du produit, sans doute lié à l'incompétence de l'éditeur.


    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/ * * * * *

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    C'est hélas un peu ce que j'en avais déduis......

    D’où ma suggestion d'un processeur a 4.4 GHz

    Concernant l'éditeur c'est un des plus grand éditeur de logiciel au monde !!!!!! (sa fait peur hein )

    quand au prix j'en parle même pas......

    Merci pour toutes vos analyse

    Salutations

    Thierry

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Avatar69 Voir le message
    ... Concernant l'éditeur c'est un des plus grand éditeur de logiciel au monde !!!!!! (sa fait peur hein )
    François Hollande à bien réussi à devenir président de la république... !

    Nous vivons une époque ou la médiocrité est récompensée...

    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/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VS2005 + TFS] Version de SQL Server sur client
    Par SergeF dans le forum Visual Studio
    Réponses: 1
    Dernier message: 15/12/2006, 12h35
  2. version de sql server sous xp
    Par zalalus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/07/2006, 14h26
  3. Compatibilité entre les versions de SQL SERVER
    Par HYQST dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/06/2006, 15h54
  4. problèmes requètes sur vieilles versions de SQL TALK (1993)
    Par totogenie dans le forum Langage SQL
    Réponses: 11
    Dernier message: 24/01/2006, 17h58

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