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

MS SQL Server Discussion :

SqlServer profiler : comment éliminer les curseurs


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut SqlServer profiler : comment éliminer les curseurs
    Bonjour,

    Petite question d'optimisation, en parlant toujours de notre con-sultant qui s'était présenté a la société, les curseurs en sql server, c'est le mal.

    Jusque la je veux bien le croire

    J'ai donc commencer et d'ailleurs j'ai fini de réécrire les procédures stockées utilisants des curseurs, les triggers également.

    Il reste donc les requètes utilisateurs, le logiciel tier est windev... je ne crois pas qu'il utilise des curseurs pour récupérer mes données (ou je lui aurai trouvé un défaut en plus).

    Ma question est, il n'y a pas de couche db entre windev et sql server, les données sont directement attaquée et présentée par l'intermédiaire de sql, une clause order by est donc souvent utile.

    J'ai lu a plusieurs reprise que une clause order by créait un curseur afin de trier les données.
    Ayant bcp de curseurs qui se présente lorsque je laisse tourner un profiler sur ma db, serait il possible que ce soit les clauses "order by" ?

    J'ai essayé de reproduire (vite fait je l'avoue) une requète avec un order by et je ne l'ai pas vu.
    Ou dois je m'inquiéter de mes vilains développeur qui utilise des curseurs depuis un langage 4gl

  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 990
    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 990
    Billets dans le blog
    6
    Par défaut
    Il reste donc les requètes utilisateurs, le logiciel tier est windev... je ne crois pas qu'il utilise des curseurs pour récupérer mes données (ou je lui aurai trouvé un défaut en plus).
    Oh que si !!!

    Tous les langages de développement d'IHM qui doivent afficher des données sous forme de grille ou même de champs "libres" nécessitent l'utilisation de curseurs.
    Windev, comme Delphi ou .net...

    Cela dit il y a des manières intelligente et d'autres beaucoup moins, pour utiliser de tels curseurs. Par exemple dans un développement de type ASP on peut utiliser des curseurs "firehose" dont la particularité est de fournir toutes les données d'un coup en mettant en mémoire tampon côté serveur web toutes les lignes sans se préoccuper si elle sont déjà écrites ou encore à écrire dans les pages HTML et ce afin de refermer le curseur au plus vite (donc pour minimiser le verouillage).
    D'autres IDE comme Delphi permettent d'utiliser des "client dataset" qui mettent en mémoire tampon les données d'un curseur et coupent le liens avec la base tant que l'utilisateur n'a pas cliqué sur le bouton OK de mise à jour global, auquel cas toutes les mises à jour de toutes les lignes sont envoyées d'un seule coup et non ligne à ligne.

    Et puis un curseur peut s'ouvrir dans différents modes tenant compte de son niveau d'isolation (moins de verrous, mais données obsolètes possibles) ou encore de la situation des lignes qu'il manipule (côté client ou côté serveur)...

    Maintenant cela n'est hélas disponible généralement que dans des outils de haut niveau et non des environnement de développement tout juste propre à faire des maquettes fonctionnelles...

    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 expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    Merci pour cette réponse toujours aussi précise qu'utile

    Snif qu'est-ce que j'aimais bien mes dataset et mon mode déconnecté de .net

    Enfin j'ai plus qu'a les encourager a utiliser Hyperfile..... entre logiciel de la même marque, j'suis sur que ça ira....... moins bien que mtn

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

Discussions similaires

  1. [SqlServer 2005] Comment recuperer les messages erreurs
    Par pb_inge dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/04/2008, 14h01
  2. [SqlServer 2000] Comment lister les noms de table de ma base de données ?
    Par karima1972 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 21/02/2007, 15h26
  3. Réponses: 2
    Dernier message: 06/12/2006, 09h09
  4. comment éliminer les doublons
    Par fk04 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/08/2006, 17h22
  5. Réponses: 4
    Dernier message: 15/05/2006, 15h54

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