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 :

[2000] Vues


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Points : 218
    Points
    218
    Par défaut [2000] Vues
    Bonjour à tous,
    J'ai quelques questions autour des vues :
    1 - Existe-t-il un moyen de savoir si une vue est utilisée ? Date de dernière utilisation ?
    2 - Est-ce que c'est pénalisant pour une base de données d'avoir enormement de vues non utilisées ?

    Merci par avance,

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonsoir,

    1. il n'y a pas de moyen simple. Soit une recherche dans syscomments pour trouver des procédures qui l'appellent, soit une trace pendant quelque temps, et ensuite une recherche dans le TextData de la trace. Je peux éventuellement aussi imaginer un truc compliqué, comme par exemple créer une fonction qui écrit dans une table de log et retourne une table contenant une colonne avec la valeur 1, que tu JOIN avec tes autres tables dans ta vue avec un ON fonction.valeur = 1. Tu peux songer à envoyer le nom de la vue dans la fonction en paramètre pour avoir un log générique. Ca me vient comme ça, c'est à tester.

    2. Il n'y a pas de problème de performance à avoir des vues inutilisées, si elles ne sont pas indexées, donc matérialisées. Par contre c'est certes énervant pour le DBA, naturellement maniaque, d'avoir tous ces objets inutiles qui encombrent.

  3. #3
    Membre actif
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Points : 218
    Points
    218
    Par défaut
    Comment faire pour voir si une vue est indexée ? Avec un SQL ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select name
    from sysindexes
    where id=object_id('VotreVue')

  5. #5
    Membre actif
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Points : 218
    Points
    218
    Par défaut
    Comment fait-on pour indexer une vue ?

    Quand je clique droit sur une vues dans le menu contextuel :
    Toutes les taches/ Gerer les indexes est grisé !

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Il faut normalement la version entreprise (pour SQL 2000), quoique ce ne soit pas 100% vrai.
    Tu dois t'assurer que la connexion remplit un certain nombre de critères : des options de connexion toujours settées de la même manière quand tu crées, atteint la vue, modifie les tables sources, et même SELECT dans les tables sous-jacentes, car dans la version entreprise l'optimiseur peut choisir l'index de la vue même si tu appelles les tables sous-jacentes sans faire référence à la vue. C'est nécessaire pour que SQL Server garantisse que les données retournées par ta vue matérialisée soient toujours les mêmes.

    Tu dois ensuite créer un index clustered sur la vue, qui elle doit être WITH SCHEMABINDING...

    enfin bref, il y a des explications sur le sujet dans les BOL (books online), cherche "View Indexes"

    ---
    Rudi Bruchez

Discussions similaires

  1. [ADP Access 2003/SQL Serveur 2000] Vue non "updatable"
    Par billybob2 dans le forum Access
    Réponses: 14
    Dernier message: 27/02/2009, 07h43
  2. SQL SERVER 2000 - Vue dangereuse
    Par monsurf dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 10/03/2008, 11h10
  3. Sql 2000: Procédure stockée dans une vue
    Par MALAGASY dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/10/2006, 17h41
  4. Minus,intersect,union et vue avec sql server 2000
    Par donny dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/02/2006, 07h46
  5. [SQL Server 2000] ajouter une colonne identité dans une vue?
    Par CetTer dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/08/2005, 13h43

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