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 :

Problèmes de performances sur un serveur avec 256 Go de Mémoire


Sujet :

Développement SQL Server

  1. #21
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Merci pour vos réponses !

    mais comment cela se fait qu'avec

    j'ai 2 temps d'exécutions ! 22s la première exécution et 13s pour les exécutions suivantes ... (juste après la première)
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  2. #22
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Ca c'est toujours vrai !
    Le problème est qu'il n'y a pas de règles pour calculer ce lot de traitement !
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  3. #23
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    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 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par m-mas Voir le message
    Merci pour vos réponses !

    mais comment cela se fait qu'avec

    j'ai 2 temps d'exécutions ! 22s la première exécution et 13s pour les exécutions suivantes ... (juste après la première)
    Parfaitement normal....

    DBCC DROPCLEANBUFFERS à vidé le cache. Il doit lire les données du disque.
    22-13 = 9 ces 9 secondes sont celles consacrée pour la lecture du disque.

    Cela ne veut pas dire que la lecture du disque n'a duré que 9 secondes car cela dépend du parallélisme.
    Si vous désactivez le parallélisme d'accès, vous aurez exactement le temps du disque dans le différentiel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DBCC DROPCLEANBUFFERS;
     
    SET STATISTICS TIME ON;
     
    SELECT * FROM Ma_Table OPTION(MAXDOP 1);
     
    SELECT * FROM Ma_Table OPTION(MAXDOP 1);
    MAXDOP signifie MAX Degree Of Parallelism (degré maximal de parallélisation). Fixé à 1 => pas de parallélisme.

    Le différentiel de temps ainsi obtenu montrera l'exacte duré d'utilisation des disques.

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

  4. #24
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Est ce que c'est possible de m'expliquer aussi ces chiffres ! j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DBCC DROPCLEANBUFFERS;
    SET STATISTICS TIME ON;
    avant l'exécution de ma requête et j'ai entre autres :

    Table 'Ma_Table'. Nombre d'analyses 991, lectures logiques 459171, lectures physiques 75, lectures anticipées 562, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0.
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  5. #25
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    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 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Table 'Ma_Table'. --> table utilisée
    Nombre d'analyses 991 --> nombre de fois ou il y a eu pénétration dans l'objet en lecture
    lectures logiques 459171 --> nombre d'IO en RAM (1 IO = 1 page de 8 Ko)
    lectures physiques 75 --> nombre d'IO primaire sur disque (lecture aléatoires)
    lectures anticipées 562 --> nombre d'IO secondaire sur disque (lecture séquentielles consécutives à une lecture primaire)
    lectures logiques de données d'objets volumineux 0 --> nombre d'IO en RAM (1 IO = 1 page de 8 Ko) pour les données de type "LOBs"
    lectures physiques de données d'objets volumineux 0 --> nombre d'IO sur disque pour les données de type "LOBs"
    lectures anticipées de données d'objets volumineux 0 --> nombre d'IO secondaire sur disque (lecture séquentielles consécutives à une lecture primaire) pour les données de type "LOBs"

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

  6. #26
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Tu peux utiliser le programme gratuit Sql Trismegiste dont tu trouves le lien dans ma signature pour récupérer quelques indications intéressantes sur ton serveur et éventuellement les publier ici pour analyse.

    Si tu as 991 accès sur ta table avec lectures logiques 459171, c'est qu'il y a peut-être un problème dans ta requête ou avec l'optimisation de la requête. Par exemple une jointure en boucle imbriquée, parce que la requête est mal écrite, ou qu'il y a une erreur d'estimation de cardinalité. Peux-tu poster le code de la requête et le plan d'exécution ?

    Sql Trismegiste te permet d'extraire ces informations du cache de plans de SQL Server au besoin.
    https://github.com/rudi-bruchez/SQLT...entation.fr.md
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  7. #27
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Une question subsidiaire toujours dans le cadre de mes recherche d'optimisation :

    Est ce qu'il est meilleure de créer une table temporaire ensuite de lui insérer des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE #TEMP1 (REF VARCHAR(200),PRIX MONEY)
     
    INSERT INTO #TEMP1
    SELECT DISTINCT REF , 
    		SUM(ISNULL(MONTANT,0))
    FROM T_ARTICLES
    Ou bien de créer directement la table temporaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT REF , 
    		SUM(ISNULL(MONTANT,0))
    INTO #TEMP2
    FROM T_ARTICLES
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  8. #28
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    En général il est meilleur de ne pas la créer du tout.
    Sinon, il doit y avoir quelques microsecondes de différences entre tes deux options.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  9. #29
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par rudib Voir le message
    Tu peux utiliser le programme gratuit Sql Trismegiste dont tu trouves le lien dans ma signature pour récupérer quelques indications intéressantes sur ton serveur et éventuellement les publier ici pour analyse.

    Si tu as 991 accès sur ta table avec lectures logiques 459171, c'est qu'il y a peut-être un problème dans ta requête ou avec l'optimisation de la requête. Par exemple une jointure en boucle imbriquée, parce que la requête est mal écrite, ou qu'il y a une erreur d'estimation de cardinalité. Peux-tu poster le code de la requête et le plan d'exécution ?

    Sql Trismegiste te permet d'extraire ces informations du cache de plans de SQL Server au besoin.
    https://github.com/rudi-bruchez/SQLT...entation.fr.md
    je vous remercie, je ne sais pas pourquoi je n'ai pas vu votre réponse hier .... c'est qu'en reliant le poste que je tombe dessus !

    je vais télécharger Sql Trismegiste (mais je vois qu'il y a le code à télépcharger et pas le .exe) et poster les chiffres données !

    Merci pour tout le monde qui prennent le temps d'aider les autres !

    Edit : je vois qu'il y a les exécutables des différents versions dans SQLTrismegiste-master\distributions\Release
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  10. #30
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par rudib Voir le message
    Tu peux utiliser le programme gratuit Sql Trismegiste dont tu trouves le lien dans ma signature pour récupérer quelques indications intéressantes sur ton serveur et éventuellement les publier ici pour analyse.

    Si tu as 991 accès sur ta table avec lectures logiques 459171, c'est qu'il y a peut-être un problème dans ta requête ou avec l'optimisation de la requête. Par exemple une jointure en boucle imbriquée, parce que la requête est mal écrite, ou qu'il y a une erreur d'estimation de cardinalité. Peux-tu poster le code de la requête et le plan d'exécution ?

    Sql Trismegiste te permet d'extraire ces informations du cache de plans de SQL Server au besoin.
    https://github.com/rudi-bruchez/SQLT...entation.fr.md
    voila j'ai lancé l'outil sur ma base de données ! il y a beaucoup trop d'informations (pour moi en tout cas )

    Qu'est ce que je dois poster par exemple pour avoir une idée sur la performance ? malheureusement des erreurs en cliquant surtout sur les entrées du nœud "Performances" et "Requêtes" !
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/06/2012, 14h05
  2. Réponses: 39
    Dernier message: 21/12/2011, 20h01
  3. [XL-2007] Problème de performance sur serveur RDS
    Par totojordi dans le forum Excel
    Réponses: 0
    Dernier message: 01/06/2011, 15h09
  4. Réponses: 2
    Dernier message: 09/02/2009, 16h05
  5. problème de performance sur requête avec Tsearch2
    Par Morpheas dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 05/02/2008, 12h25

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