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 :

Trier les données dans la base


Sujet :

MS SQL Server

  1. #1
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut Trier les données dans la base
    Bonjour,

    J'aimerais savoir s'il y avait une fonction dans SQL-Server qui permettrait de trier les données à l'intérieur de la base. Je sais que c'est pas très logique, car normalement, c'est à l'affichage qu'on trie les données, mais bon, on me demande de faire ça...

    Il y a une fonction pour le faire ? Ou alors je dois faire ça moi-même en parcourant les résultats triés et en les insérant à nouveau dans la base ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    La création d'un index CLUSTERED trie physiquement les données dans la table.
    Voir la commande CREATE CLUSTERED INDEX pour les détails.

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par kuzco
    La création d'un index CLUSTERED trie physiquement les données dans la table.
    Voir la commande CREATE CLUSTERED INDEX pour les détails.
    Merci, je vais voir ce qu'il en est

  4. #4
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Juste pour information, le CLUSTERED INDEX est à utiliser en faisant très attention. A chaque modification ( INSERT, DELETE voir certains UPDATE ), SQL Server doit maintenir le CLUSTERED INDEX à jour, ce qui fait que ca peut générer un train grand nombre d'entrée/sortie ( écriture sur le disque ).

    Si la table est très volumineuse, ca peut tuer completement les perfs.

    Pour donner un exemple. Il y a peu de temps, j'avais un base de plusieurs millions d'enregistrements en CLUSTERED INDEX. Il y avait deux conséquences :
    - requete en bulk insert prennait une dizaine d'heure à être executé pour quelques centaines de milliers d'entrées
    - les accès à la base contenant la base était très fortement impacté ( ralentissement très important !! )

    Donc il faut bien faire attention au CLUSTERED INDEX

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Juste pour information, le CLUSTERED INDEX est à utiliser en faisant très attention. A chaque modification ( INSERT, DELETE voir certains UPDATE ), SQL Server doit maintenir le CLUSTERED INDEX à jour, ce qui fait que ca peut générer un train grand nombre d'entrée/sortie ( écriture sur le disque ).

    Si la table est très volumineuse, ca peut tuer completement les perfs.

    Pour donner un exemple. Il y a peu de temps, j'avais un base de plusieurs millions d'enregistrements en CLUSTERED INDEX. Il y avait deux conséquences :
    - requete en bulk insert prennait une dizaine d'heure à être executé pour quelques centaines de milliers d'entrées
    - les accès à la base contenant la base était très fortement impacté ( ralentissement très important !! )

    Donc il faut bien faire attention au CLUSTERED INDEX
    C'est tout aussi vrai avec n'importe quel index et même avec certains types de views.

    Quand on planifie la performance, il faut toujours mesurer les gains entrées vs sorties.

    Pour une base d'archivage, - d'index; pour une base d'analyse de données statiques + d'index.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par benratti
    - requete en bulk insert prennait une dizaine d'heure à être executé pour quelques centaines de milliers d'entrées
    - les accès à la base contenant la base était très fortement impacté ( ralentissement très important !! )
    Normal, en général, quand on fait des bulk insert, on drop les index pour éviter les I/O liés aux index.

    Ensuite, si il y a beaucoup de INSERT UPDATE DELETE dans la base, on adapte le FILLFACTOR des index. On les met petit si il y a beaucoup d'écriture/modification, et grand si il y a beaucoup plus de lecture (SELECT).

    Un index ça se maintient.

  7. #7
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Pour ces précisions

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

Discussions similaires

  1. Trier les données dans un formulaire
    Par nini94 dans le forum IHM
    Réponses: 2
    Dernier message: 27/11/2006, 13h26
  2. Trier les données dans un formulaire.
    Par nini94 dans le forum Access
    Réponses: 6
    Dernier message: 23/11/2006, 17h14
  3. inserer les données dans une base de donnée a partir d'un datagrid
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 31/07/2006, 00h46
  4. Trier les données dans 1 tableau par ordre décroissant
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/11/2005, 09h56
  5. trier les données dans le cache ??
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 31
    Dernier message: 10/06/2003, 10h03

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