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 :

Discussion - champs text / varchar(max) avec plusieurs millions de lignes


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyste Développeur
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Par défaut Discussion - champs text / varchar(max) avec plusieurs millions de lignes
    Bonjour,

    Je suis actuellement un peu bloquer par rapport à mes connaissances générales en SQL et sur une problématique avec SQL Server. J'ai plusieurs vues ou requêtes basées sur des tables et avec différentes jointures. Je dispose également de 4-5 champs de type text sur quelques tables.
    Après avoir chargés plusieurs milliers/millions de lignes dans ces tables (test de charges), je constate énormément de lenteur. Je dispose d'un index relationnel sur une colonne qui apparaît dans les différentes tables cités.
    J'ai également réduit une requête à une seule table (donc sans les jointures externes que j'utilise dans mes vues) et à chaque ajout à mon select d'un champs de type text, je multiplie le temps de façon exponentiel.

    Donc je voulais savoir si certains d'entre vous ont déjà rencontré ce genre de problématique :
    - Base importante de plusieurs millions de lignes
    - Avec des champs text / varchar(max)

    Avez-vous des conseils à me fournir ? Ne pas utiliser ce genre de champs (je sais que les BLOB existe, mais je souhaite faire de la recherche fulltext une fois cette problématique de lenteur résolue) ? Utiliser un autre type de base de données ? etc..

    Merci d'avance.

  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
    22 031
    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 : 22 031
    Billets dans le blog
    6
    Par défaut
    Ceci est normal... Vous utilisez un mauvais type de données. Le type text est obsolète depuis plus de 10 ans, en l’occurrence depuis la version 2005 qui, comme son nom l'indique, date de 2005, soit 11 ans !

    En sus si vous n'utilisez pas systématiquement vos CLOBs dans toutes vos requêtes (et que vous ne faites pas stupidement des SELECT *), vous auriez tout intérêt à sépare le stockage des colonnes relationnelles, des colonnes LOBs, en spécifiant un groupe de fichier particulier pour ces derniers à l'aide de la directive de stockage TEXTIMAGE_ON au moment du CREATE TABLE.
    Pour de plus amples information, lisez notre livre, chapitre stockage (100 pages sur le sujet)...

    Enfin réduire une collection de table jointes à une seule table conduit à une table obèse dont les perofmrances sont les pires. À me lire : http://blog.developpez.com/sqlpro/p1...mances_petites

    A +

    Nom : Couverture SQL Synthex 4e ed - 500.jpg
Affichages : 226
Taille : 77,8 Ko
    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. Valeur MAX avec plusieurs condition
    Par Beaudelicius dans le forum Excel
    Réponses: 2
    Dernier message: 18/10/2013, 19h36
  2. [MySQL] Selection de plusieurs millions de lignes
    Par stomerfull dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/07/2012, 18h44
  3. Réponses: 0
    Dernier message: 27/04/2012, 19h16
  4. Ecrire un fichier avec plusieurs types de ligne
    Par guicecal dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 11/01/2011, 12h27
  5. concaténer par GROUP BY des champs text/varchar
    Par Fredobdx dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/07/2005, 14h44

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