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 :

Indexation de View


Sujet :

Développement SQL Server

  1. #1
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 790
    Points
    6 790
    Billets dans le blog
    4
    Par défaut Indexation de View
    Bonjour, après quelques recherches sur le forum, je n'ai pas trouvé de cas similaire, après recherche sur le web non plus d'ailleurs..

    J'essaye d'indexer une view que j'ai développé sous SQL Server, mais il doit me manquer quelque chose dans la compréhension du mécanisme. J'ai lu le blog de SQLpro pour ça ainsi que plusieurs sites qui me disent la même chose, mais en moins clair -_-.

    Bref, toujours en est-il que ma vue se crée, mais que je ne peux pas indexer mes champs car il me ressort une erreur
    Impossible de créer index sur la vue 'V_VILLES_FRANCE_FR' car celle-ci n'est pas liée au schéma.
    hors, quand je regarde sur mon explorateur, elle est dans le bon schéma.. bref, j'ai surement foiré en un endroit X que je ne trouve pas :/

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    SELECT T_LIB_PAYS
         , T_NOM_REGION
         , NT_NUM_DEPT
         , T_NOM_DEPT
         , NT_CP_VILLE
         , T_NOM_VILLE
         , N_COORD_X
         , N_COORD_Y
    FROM dbo.TB_GEO_VILLES tgv
    INNER JOIN dbo.TB_GEO_VILLES_LG tgvl
      ON tgv.I_VILLE = tgvl.I_VILLE_FKPK
    INNER JOIN (
        SELECT I_PAYS
             , T_LIB_PAYS
             , I_REGION
             , T_NOM_REGION
             , I_DEPARTEMENT
             , NT_NUM_DEPT
             , T_NOM_DEPT
        FROM dbo.TB_GEO_DEPARTEMENTS tgd
        INNER JOIN dbo.TB_GEO_DEPARTEMENTS_LG tgdl
          ON tgd.I_DEPARTEMENT = tgdl.I_DEPARTEMENT_FKPK
        INNER JOIN (
            SELECT I_PAYS
                 , T_LIB_PAYS
                 , I_REGION
                 , T_NOM_REGION
            FROM dbo.TB_GEO_REGIONS tgr
            INNER JOIN dbo.TB_GEO_REGIONS_LG tgrl
              ON tgr.I_REGION = tgrl.I_REGION_FKPK
            INNER JOIN (
                SELECT I_PAYS
                     , T_LIB_PAYS
                FROM dbo.TB_GEO_PAYS tgp
                INNER JOIN dbo.TB_GEO_PAYS_LG tgpl
                  on tgp.I_PAYS = tgpl.I_PAYS_FKPK
                WHERE I_LANGAGE_FKPK = 1 ) rqPAYS
              ON tgr.I_PAYS_FK = rqPAYS.I_PAYS
            WHERE tgrl.I_LANGAGE_FKPK = 1 ) rqPAYSREGION
          ON tgd.I_REGION_FK = rqPAYSREGION.I_REGION ) rqPAYSREGIONDEPT
      ON tgv.I_DEPARTEMENT_FK = rqPAYSREGIONDEPT.I_DEPARTEMENT;

    voilà la requête qui crée ma vue, il est possible que cela vienne de là.

    Je voudrais juste savoir ce qui déclanche cette erreur en faite.

    Cordialement.
    Lyche

  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
    21 888
    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 888
    Points : 53 122
    Points
    53 122
    Billets dans le blog
    6
    Par défaut
    1) votre vue doit être créée avec l'option SHEMABINDING :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CRATE VIEW V
    WITH SCHEMABINDING
    AS
       SELECT ...
    2) vous devez préfixer tous vos objets avec le schéma (apparemment c'est le cas)

    3) vous ne devez pas avoir de sous requêtes (or ces le cas.

    Pour le 3, vous pouvez sans doute remplacer vos tables dérivées en jointures directes.

    N'oubliez pas l'objectif : une vue indexées n'est pas destinée à remplacer une requête, mais à aider certaines requêtes à aller plus vite. Elle révèlent toute leurs puissance lors des opération d'agrégats comme SUM ou COUT.

    A +

  3. #3
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 790
    Points
    6 790
    Billets dans le blog
    4
    Par défaut
    D'accord, merci pour ces conseil, je vais reprendre ma vue alors puisque je peux la refaire sans passer par les sous requêtes. C'était plus un teste qu'autre chose.

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

Discussions similaires

  1. [Drupal] search multi index et view
    Par dgidgi2 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 01/08/2013, 14h26
  2. Index Hors limite sur Data Grid view.
    Par Seb1492 dans le forum C#
    Réponses: 3
    Dernier message: 04/08/2011, 09h05
  3. transformé une view vers une index
    Par sal.gass dans le forum SQL
    Réponses: 5
    Dernier message: 08/04/2010, 09h18
  4. Materialized view + Indexs + Contraintes
    Par hair_peace dans le forum Oracle
    Réponses: 4
    Dernier message: 05/09/2006, 17h57
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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