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 :

besoin de conseil sur les procédures stockées et vues.


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut besoin de conseil sur les procédures stockées et vues.
    Bonjour,

    je cherche à optimiser une application ASP.NET / SQL Server 2005.
    C'est un monde virtuel, il y a des connections simultannées à toutes heures et les tables sont parfois fortement peuplées.

    Actuellement toutes les requêtes sont assemblées côtés ASP et envoyées via le réseau local sur le serveur SQL. J'ai donc pris partit de passer quand ca me paraissait approprié ces requêtes en procédures stockées.

    Que faire lorsqu'une requête a de nombreux filtres (10~15 filtres différents possibles MAIS pas obligatoire) et tris variables qui peuvent ou non être appliqués en fonction du choix des utilisateurs ?
    utiliser une centaines de lignes de IF ? Laisser la requête côté ASP car il la génèrera plus rapidement que la DB malgrès le temps de transmission, la sécurité et le temps compilation ?

    Dans le même genre :
    Quand je désir optenir qu'une certaine plage de résultats j'utilise les instructions ROW_NUMBER() OVER (ORDER BY @sortField), seulement quand ma colonne de tri peut varier entre trois voir cinq colonnes différentes, comment faire pour définir une vue ? Définir les 5 instructions quitte à ralentir fortement la vue ? refaire une requête côté ASP qui inclut la vue et ajoute l'instruction de ranking à ce moment là ?

    Merci par avance pour votre avis !

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 780
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 780
    Points : 3 033
    Points
    3 033
    Par défaut
    Il est tout à fait possible de créer une store procedure qui accepte 15 variables en paramètre et qui peuvent être initialisées avec '%' comme valeur par défaut.

    Ensuite, il faut créer ton SQL en prévoyant un critère

    Par exemple

    SELECT Fields FROM MaTable WHERE (Field1 Like @Field1)

    Si tu as initialisé Field1 à '%', c'est comme si tu n'avais pas mis de filtre => cela revient à gérer les filtres optionels.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    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 847
    Points : 52 961
    Points
    52 961
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Que faire lorsqu'une requête a de nombreux filtres (10~15 filtres différents possibles MAIS pas obligatoire) et tris variables qui peuvent ou non être appliqués en fonction du choix des utilisateurs ?
    utiliser une centaines de lignes de IF ? Laisser la requête côté ASP car il la génèrera plus rapidement que la DB malgrès le temps de transmission, la sécurité et le temps compilation ?
    Procédure stockée avec SQL dynamique
    .
    Prévoir aussi de forcer la paramétrisation côté base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quand je désir optenir qu'une certaine plage de résultats j'utilise les instructions ROW_NUMBER() OVER (ORDER BY @sortField), seulement quand ma colonne de tri peut varier entre trois voir cinq colonnes différentes, comment faire pour définir une vue ? Définir les 5 instructions quitte à ralentir fortement la vue ? refaire une requête côté ASP qui inclut la vue et ajoute l'instruction de ranking à ce moment là ?
    Procédure stockée avec SQL dynamique.


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

Discussions similaires

  1. besoin de conseils sur les ouvertures de connexion
    Par maxidoove dans le forum JDBC
    Réponses: 1
    Dernier message: 11/06/2008, 13h09
  2. Livre sur les procédures stockées
    Par infosteph dans le forum Livres
    Réponses: 0
    Dernier message: 14/04/2008, 15h50
  3. Demande infos sur les procédures stockées
    Par VILPELLET dans le forum SQL
    Réponses: 3
    Dernier message: 15/10/2007, 14h27
  4. Besoin de conseil sur les classes
    Par SuperWeight dans le forum MFC
    Réponses: 1
    Dernier message: 04/06/2007, 21h44
  5. Informations sur les procédures stockées
    Par jfphan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/01/2004, 14h30

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