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 :

Probleme de lenteur sur selection de date


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut Probleme de lenteur sur selection de date
    Bonjour

    Dans une requête SELECT j'utilise comme argument de recherche WHERE YEAR(MADATE) = 2009 AND MONTH(MADATE) = 11 pour me sortir tout les enregistrement de Novembre 2009.

    Cela marche mais c'est très lent (plusieurs minutes.....).

    Existe-il une methode plus rapide ? un tri entre deux date plutôt du genre MADATE > 31/10/2009 and MADATE < 01/12/2009 cela est il moins « gourmand »

    Mon champs MADATE et au format numeric(24,6) et les enregistrement sont du type "2009-11-01 14:25:24"

    Pour info ma table a environ 3.5 Millions d'enregistrements et ma base fait 4.8 Go

    Merci pour vos conseils

    Thierry

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Avatar69 Voir le message
    Existe-il une methode plus rapide ? un tri entre deux date plutôt du genre MADATE > 31/10/2009 and MADATE < 01/12/2009 cela est il moins « gourmand »
    Tout à fait, ici il n'y a pas besoin d'appliquer les fonctions YEAR et MONTH à vos 3,5 millions de lignes.
    Veillez bien à convertir vos constantes en date de façon explicite.

    Vous pourrez ensuite indexer cette colonne pour accélerer votre requête.

    Citation Envoyé par Avatar69 Voir le message
    Mon champs MADATE et au format numeric(24,6) et les enregistrement sont du type "2009-11-01 14:25:24"
    Ah non, là tout part en cacahuète.
    Pourquoi une date en format numerique ? Pourquoi pas en format date tout simplement ?
    Comme faites-vous pour écrire "2009-11-01 14:25:24" en numérique (qui n'acceptera ni les tirets ni les deux points) ?
    En l'occurence, ça ressemble à une date donc êtes-vous sûr de ce que vous avancez quant aux types de vos données ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 133
    Par défaut
    si le change est de type date, un bon BETWEEN fera l'affaire, surtout si le champs est indexé, ca sera très rapide.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 133
    Par défaut
    Citation Envoyé par ionesco Voir le message
    si le champs est de type date, un bon BETWEEN fera l'affaire, surtout si le champs est indexé, ca sera très rapide.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut
    En l'occurence, ça ressemble à une date donc êtes-vous sûr de ce que vous avancez quant aux types de vos données ?
    Effectivement me suis gourer de ligne quand j'ai regardé....le format et du "smalldatetime" desolé poue cette erreur

    Je vais tester avec BETWEEN car la ma requete met environ 10 minutes....

    Y a t-il des limites pour la Base SQL, je suis sous Server2003/SLQ SERVER 2000 Autre que la limite du disque et autre truc de base

    Merci pour votre aide

    Sarcastik

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si vous êtes sous SQL Server 2000, vous n'êtes pas dans le bon forum !

    Avez-vous indexé votre colonne date ?

    Est-il possible de voir toute la requête (pour s'assurer que le problème ne vient pas d'ailleurs) ?

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

Discussions similaires

  1. probleme de lenteur sur mon reseau
    Par ultraxa dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 31/08/2012, 09h27
  2. [PDF] Probleme de longueur sur les cellules Date FR dans PDF
    Par C3DRIC49 dans le forum Bibliothèques et frameworks
    Réponses: 21
    Dernier message: 02/06/2009, 00h11
  3. [Oracle] Probleme avec ora_parse sur un SELECT
    Par thomasjcj dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/11/2008, 13h50
  4. Lenteur sur Select
    Par remys dans le forum Sybase
    Réponses: 5
    Dernier message: 29/05/2008, 16h20
  5. Selection ligne sur max de date
    Par vince_grenoblois dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/07/2006, 12h33

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