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 :

Problèmes de vue indéxée


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut Problèmes de vue indéxée
    Bonjour,

    J'ai créé une vue WITH SHEMABINDING.

    J'aimerais simplement créer un index nonUnique dessus... est-ce possible?

    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX idx_1 ON maVue(monChamp)

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut,
    dans la mesure ou une vue est juste une requête de sélection stockée sous forme d'objet, je pense qu'il est impossible d'y ajouter un index.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 890
    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 890
    Points : 53 122
    Points
    53 122
    Billets dans le blog
    6
    Par défaut
    Contrairement à ce qui vous a été dit, les vues indexées existent bien sous MSQ SQL Server depuis la version 2000.
    Sous Oracle cela s'appelle "vue matérialisées" et c'est le même principe : rajouter un index contenant des données résultant du calcul de la requête qui construit la vue, afin d'accélérer les accès aux données.

    Toutes les vue ne sont pas indexables. pouvez vous poster :
    1) l'ordre complet CREATE VIEW
    2) les ordres DDL de création des tables
    3) le texte exact de l'erreur et son n°

    Ce afin de vous aider à voir pourquoi SQL vous refuse l'indexation de la vue.

    Sachez cepandant que vous devez en premier lieu créer un premier index de type UNIQUE CLUSTERED avant de créer d'autres index spécifiques.

    A +

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Citation Envoyé par pacmann Voir le message
    Salut,
    dans la mesure ou une vue est juste une requête de sélection stockée sous forme d'objet, je pense qu'il est impossible d'y ajouter un index.
    Complètement faux...

    Bien sûr que cela est possible!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Avant tout merci SQL PRO. Je n'en attendais pas moins de toi

    Ton poste m'a donné plusieurs informations que je soupçonnais, mais qui demandais confirmation. reprenons cela point par point :

    Citation Envoyé par SQLpro Voir le message
    Contrairement à ce qui vous a été dit, les vues indexées existent bien sous MSQ SQL Server depuis la version 2000.
    Sous Oracle cela s'appelle "vue matérialisées" et c'est le même principe : rajouter un index contenant des données résultant du calcul de la requête qui construit la vue, afin d'accélérer les accès aux données.
    Je savais déjà tout ça mais merci de le rappeler, y compris pour pacmann

    Citation Envoyé par SQLpro Voir le message
    Sachez cepandant que vous devez en premier lieu créer un premier index de type UNIQUE CLUSTERED avant de créer d'autres index spécifiques.
    Voilà une information que je soupçonnais...
    Cependant, lorsque je crée un index unique clustered sur un champ cela bloque de la même façon mes tables inclues dans la requête de création de la vue.

    Comme si n'importe quel index unique clustered bloquait les tables concernées...

    L'erreur au moment de l'insert (une fois la vue ET l'index clustered unique créé) est de type : "violation de PRIMARY KEY" pourtant je suis sûr que ce n'est pas le cas puisque le champ que j'index sert de clé (en l'occurence, un id_ligne de facturation) dans la table et la vue.

    Il y a un autre paramètre qui peut avoir une influence : l'insertion est située dans une transaction qui insert dans plusieurs tables... serait-ce du à la transaction? (même s'il n'ya pas de with nolock dans ma requête de création de la vue... donc aucune chance de prendre des données "fantômes")

    Bref, beaucoup de questions sans réponses...

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 890
    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 890
    Points : 53 122
    Points
    53 122
    Billets dans le blog
    6
    Par défaut
    sans le DDL de tes tables difficile de dire quoi que ce soit...

    A +

Discussions similaires

  1. Problème de vue
    Par tiyolx dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 27/11/2008, 09h44
  2. Envoie de Mail # Problème de vue
    Par captainflex dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 07/09/2008, 13h11
  3. Computed column ou vue indéxée
    Par PickEpique dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 09/11/2007, 11h31
  4. Problème de vue Datasheet sous sharepoint
    Par FiCuS dans le forum SharePoint
    Réponses: 1
    Dernier message: 23/10/2007, 11h04

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