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 :

Datediff sur ligne du dessus [2008R2]


Sujet :

Développement SQL Server

  1. #21
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Chaque requête, chaque environnement pose ses problèmes.
    Actuellement je travaille dans sur un DWH (Oracle , mais la logique est la même) où les I/O ont été optimisés aux petits oignons par l'équipe système (disques I/O fusion, SSD en veux-tu en voilà).
    Bref, les I/O sont rarement un problème.
    Avec 1 To de RAM, on n'a pas non plus de soucis de ce côté là.
    Ce qui nous limite c'est le CPU.

    Et les tris des fonctions de fenêtrages sont coûteux.
    En fonction des données, j'ai déjà optimisé des requêtes par des facteurs cinq à dix en remplaçant des fonctions de fenêtrage par des bons vieux agrégats.
    Et l'inverse est vrai également.

  2. #22
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 769
    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 769
    Points : 52 720
    Points
    52 720
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par pcaboche Voir le message
    déjà la première comparaison est stupide puisque l'on compare de l’itératif à de l'ensembliste. Elle n'a donc aucune valeur. En sus on ne compare que sur un jeu de données fixe dont le nombre de lignes est le même. C'est encore plus stupide !

    Or la magie du SQL c'est que le comportement des temps de réponse n'est que très rarement linéaire !

    Donc, il n'est pas rare qu'en fonction de la cardinalité, la stratégie d'attaque des données et les algorithmes de traitement des opérations changent et que ce qui apparaissait avantageux avec un faible nombre de ligne devient catastrophique avec un grand nombre.

    pour exemple, regardez les conditions du benchmark effectué sur un type de requête avec différentes écritures que j'ai réalisé ici :
    http://blog.developpez.com/sqlpro/p9...alles_en_sql_1
    On part de 1000 lignes, pour aller successivement à 1 millions de lignes.
    Vous pourrez remarquer que pour certaines requête, la durée intrinsèque diminue en fonction de l’augmentation du nombre de lignes, notamment pour les requêtes 5 et 6 lors du passage de 1000 à 3000 lignes une fois les bons index posaés !

    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. #23
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    déjà la première comparaison est stupide puisque ...
    Ok, je n'ai pas pris le temps de décortiquer chaque requête, méthodologie, etc.
    Ce qui m'a mis la puce à l'oreille, c'est le nombre de gens qui se plaignaient de la lenteur sur 2005 (à tort ou à raison, je ne sais pas).

    Cela ne m'a pas empêché d'utiliser le ROW_NUMBER à plusieurs reprises, avec des performances acceptables (mais ce n'était pas sur des millions d'enregistrement).

    Si en plus ça supporte bien la charge, alors tant mieux ! (parce que c'est quand même bien pratique !)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [FLASH MX] rollOver sur ligne datagrid
    Par totoche dans le forum Flash
    Réponses: 1
    Dernier message: 21/11/2005, 18h03
  2. [VB.NET] onmouseover sur ligne du datagrid
    Par lucie.houel dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/11/2005, 09h28
  3. [Forms6i] Focus sur ligne spécifique
    Par lafouine dans le forum Forms
    Réponses: 4
    Dernier message: 30/08/2005, 11h12
  4. la moyen des champs sur ligne
    Par nah_wah dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 04/08/2005, 11h45
  5. [CSS][Débutant] Rollover sur ligne d'un tableau
    Par Nyx de Tours dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 12/07/2005, 09h25

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