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 :

Graves problèmes de performances (delai attente dépassé)


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut Graves problèmes de performances (delai attente dépassé)
    Bonjour,

    J'ai une application .net qui communique avec une base de données SQL server via des commandes ADO et l'appel de procédures stockées. La base client est relativement importante et ensuite 12 personnes travaillent en simultanée. Tout fonctionnaire parfaitement jusqu'à la semaine dernière où j'ai compressé les données de leur table qui nous sert de GED (par code, j'ai extrait chaque fichier, je l'ai zippé puis remis en base). Cette action a permis de réduire l'espace occupé par la table puisque nous sommes passés de 15Go à 1Go. Jusque là tout fonctionnait encore bien. Pour libérer réellement la taille des fichiers de la base, j'ai réduit la taille des fichiers via SQL Server manager (clic droit sur la base / tache/ réduire les fichiers).
    La base est passée de 25Go à Go. Depuis cette action, mes clients n'arrêtent pas d'avoir des messages d'erreur "délai d'attente dépassé" ,après environ 2h d'utilisation du logiciel, sur l'appel de procédures qui ne posaient pas de problème avant. J'ai tout de suite réaugneté la taille du fichier de base et exécuter une ps pour reconstruire tous les index qui étaient très fragmentés. Malgré ses actions, les messages réapparaissent sans cesse. Dans le gestionnaire de tâches, je vois que SQL Server monte vite en mémoire pour occuper 1,7Go. Je n'ai plus idées et toute aide sera la bienvenue. Pour dernière info, dans le code ADO, je fais un begintransaction() même pour faire un simple select mais je ferme la connexion toute de suite derrière.
    Merci à tous de votre éventuelle aide....

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    1. Donne-nous d'abord les résultats de cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    xp_msver ProductName
      ,ProductVersion
      ,Language
      ,Platform
      ,WindowsVersion
      ,ProcessorCount
      ,ProcessorType
      ,PhysicalMemory
    2. la base de données est toujours accessible après les opérations ?

    3. augmente le niveau de trace dans la procédure stockée, l'idée est de cibler à quel point la procstock bloque
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut Informations obtenues après exécution de la requête
    Voici les informations obtenues après exécution de la requête:1 ProductName NULL Microsoft SQL Server
    ProductVersion 589824 9.00.1399.06
    Language 1036 Français (France)
    Platform NULL NT INTEL X86
    WindowsVersion 143851525 5.0 (2195)
    ProcessorCount 2 2
    ProcessorType 586 PROCESSOR_INTEL_PENTIUM
    PhysicalMemory 3920 3920 (4109914112)

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    As-tu réaliser des backups avant tes opérations ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Du temps de midi, je me suis connectée sur le serveur SQL de mon client. J'ai arrêté le service puis je l'ai redémarré. La taille mémoire occupée par SQL Server est maintenant aux alentours de 500Mo et on peut utiliser l'application sans problème (je viens de lancer l'affichage de listes qui étaient à l'origine de message tout à l'heure et là elles passent sans problème. Mais à mon avis, dans 1 ou 2h, les problèmes vont ressurgir.
    Sinon lorsque les messages apparaissent, je vois un lock mais la base de données n'est pas bloquée. Je vais essayer d'augmenter le niveau de trace des procédures stockées qui posent le plus de problèmes.
    Pour les backups, j'ai fait une sauvegarde de la base avant toutes ses modifs mais en une semaine le client a saisi pas mal de données.

  6. #6
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Tu peux vérifier si /3GB est activé sur le serveur avec requette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT physical_memory_in_bytes
    ,virtual_memory_in_bytes 
    FROM sys.dm_os_sys_info
    Si ce n'est le cas alors active /3GB (le redémarrage du serveur est indispensable pour prendre en compte cette option)
    Etienne ZINZINDOHOUE
    Billets-Articles

  7. #7
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Affiche le résultat de cette requête. Remplace "TaBase" par le nom de ta base de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DATABASEPROPERTY('TaBase', 'IsAutoShrink ')
    ,DATABASEPROPERTY('TaBase', 'IsAutoClose');
    Etienne ZINZINDOHOUE
    Billets-Articles

  8. #8
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Voici les résultats des requêtes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT physical_memory_in_bytes
    ,virtual_memory_in_bytes 
    FROM sys.dm_os_sys_info
     
    4109914112	2147352576
     
    SELECT DATABASEPROPERTY('sociel', 'IsAutoShrink ')
    ,DATABASEPROPERTY('sociel', 'IsAutoClose');
    NULL       0
    Je ne comprends pas votre phrase "Si ce n'est le cas alors active /3GB ???"

  9. #9
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par franckgar Voir le message
    Voici les résultats des requêtes:
    SELECT physical_memory_in_bytes
    ,virtual_memory_in_bytes
    FROM sys.dm_os_sys_info

    4109914112 2147352576
    La valeur de virtual_memory_in_bytes = 2147352576 montre que /3GB n'est pas activé. L'activation du /3GB permettra à SQL SERVER d'avoir une mémoire RAM plus grande, proche de 3GB.

    Citation Envoyé par franckgar Voir le message
    SELECT DATABASEPROPERTY('sociel', 'IsAutoShrink ')
    ,DATABASEPROPERTY('sociel', 'IsAutoClose');
    NULL 0
    Celà veut dire l'option AutoClose est à OFF --> C'est bien.

    par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATABASEPROPERTY('sociel', 'IsAutoShrink ')
    renvoie NULL ??? !!! Essaye encore ceci et donne le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATABASEPROPERTY('sociel', 'IsAutoShrink ')
    Etienne ZINZINDOHOUE
    Billets-Articles

  10. #10
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Je viens de refaire la requête SELECT DATABASEPROPERTY('sociel', 'IsAutoShrink ') et le résultat est 0.
    Peux tu me dire comment on active \3Go ?

  11. #11
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Complément d'infos. Il me semble que vous travaillez sous Windows server 2000;
    donc vous ne pouvez pas utiliser le commutateur /3GB dans le fichier Boot.ini avec Windows 2000 Server, mais vous pouvez l'utiliser avec les versions Microsoft Windows 2000 Advanced Server ou Microsoft Windows 2000 Datacenter.

    Quelle est l'edition de OS ?

    ouvre la console DOS et exécute ceci :

    et donne le résutat
    Etienne ZINZINDOHOUE
    Billets-Articles

  12. #12
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par franckgar Voir le message
    Je viens de refaire la requête SELECT DATABASEPROPERTY('sociel', 'IsAutoShrink ') et le résultat est 0.
    C'est bien.

    Citation Envoyé par franckgar Voir le message

    Peux tu me dire comment on active \3Go ?
    Attention avant donne d'abord la version de l' OS

    tu peux le voir à l'aide de la commande DOS

    Etienne ZINZINDOHOUE
    Billets-Articles

  13. #13
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    L'os est Microsoft Windows 2000 version 5.00.2195 avec service pack 4

  14. #14
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par franckgar Voir le message
    L'os est Microsoft Windows 2000 version 5.00.2195 avec service pack 4
    ça j'ai déjà vu avec la commande xp_msver.

    Quand tu exécutes la commande systeminfo, qu'est ce qui est indiqué devant

    Nom du système d'exploitation ? OU OS Name ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  15. #15
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    La commande systeminfo ne fonctionne pas sur Windows Server 2000 mais en lançant la commande msinfo32, je pense avoir obtenu la même chose. Je vois Nom du système d'exploitation et non OS Name.

  16. #16
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par franckgar Voir le message
    La commande systeminfo ne fonctionne pas sur Windows Server 2000 mais en lançant la commande msinfo32, je pense avoir obtenu la même chose. Je vois Nom du système d'exploitation et non OS Name.
    Qu'est ce qui est indiqué pour Nom du système d'exploitation ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  17. #17
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Il est mentionné Microsoft Windows 2000 Server

  18. #18
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par franckgar Voir le message
    Il est mentionné Microsoft Windows 2000 Server
    Vous ne pouvez pas allouer plus de 4 Go de mémoire physique à une application dans Windows 2000 Server, car l'extension d'adresse physique (PAE) n'est pas disponible dans Microsoft Windows 2000 Server. De même, vous ne pouvez pas utiliser le commutateur /3GB dans le fichier Boot.ini avec Windows 2000 Server, mais vous pouvez l'utiliser avec les versions Microsoft Windows 2000 Advanced Server ou Microsoft Windows 2000 Datacenter. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.

    Source ici
    Etienne ZINZINDOHOUE
    Billets-Articles

  19. #19
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par franckgar Voir le message
    Il est mentionné Microsoft Windows 2000 Server
    On retenir que vous travaillez avec SQL Server 2005 RTM avec les options IsAutoShrink et IsAutoShrink bien configurées:
    AutoClose --> OFF
    IsAutoShrink --> OFF


    Apparemment vous ne pouvez pas activer le commutateur /3GB vu que l'OS n'est pas Microsoft Windows 2000 Advanced Server ou Microsoft Windows 2000 Datacenter.

    Des pistes :

    1. Regarder s'il n'y pas des services inutiles qui tournent pour rien

    2. Faites de la place sur vos disques durs

    3. Examiner les nombres de lignes renvoyées par vos requêtes

    4. Optimiser votre procédure stockées (si possible)

    5. poser les bon index

    6....

    Peux-tu nous dire le nombre de lignes dans les principales tables ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  20. #20
    Nouveau membre du Club
    Profil pro
    frTRYER
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : frTRYER

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Tout d'abord merci du temps que vous me consacrez et des nombreuses infos que vous m'avez apportées.
    Mais il y a vraiment quelque chose de bizarre que je ne m'explique pas. Si j'arrête le service SQL puis que je le redémarre, l'application est plutôt rapide, les requêtes s'exécutent vite. Mais les performances se dégradent au fil de l'eau et au bout de 2h, on arrive à un blocage (délai temps exécution expiré). C'est vrai que j'utilise parfois des procédures stockées dynamiques et il me semble que SQL server ne peut pas utiliser d'index pour exécuter ces requêtes. Mais dans 80% des cas, les procédures sont simples et j'ai essayé de créer les index les plus adaptés. Au vu de tout ce que j'ai pû lire, mes tables ne contiennent pas énormément de données (max 120000 pour les plus grosses) par contre je fais beaucoup de jointure sur des champs date et des clés étrangères.
    Autre chose, j'ai lu qu'il était préférable de dédier un serveur à la base de données et que 10% d'espace disponible était le minimum requis. Je viens de constater que mon client se sert du serveur pour stocker les fichiers de tous ses salariés et que par conséquent il ne restait que 9.8Go de libre sur les 92 de départ. Est ce que ce manque de place pourrait expliquer mon blocage et le fait que SQL Server ne fait que grossir en mémoire sans jamais la libérer même quand plus personne n'est connecté à l'application?

Discussions similaires

  1. Delai d'Attente Dépasse
    Par CBASE dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/11/2011, 12h02
  2. [SSL] Https "delai d'attente dépassée" / Http ok
    Par Darkroro dans le forum Apache
    Réponses: 5
    Dernier message: 20/10/2011, 14h55
  3. FF->Delai d'attente dépassé; IE-> OK
    Par fredeau dans le forum Firefox
    Réponses: 3
    Dernier message: 24/09/2007, 10h42
  4. message << Delais d'attente dépassé>> à l'execution de requête
    Par obydissonn dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/07/2007, 20h07
  5. Grave problème de performance access
    Par sohm dans le forum Access
    Réponses: 13
    Dernier message: 14/11/2005, 23h22

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