Quels sont les inconvénient de vues SQL?
Récemment, j'ai été confronté à un entretien et j'ai posé la question ci-dessus.
J'ai été bête quand je pense à ce sujet.
Intervieweur dit:
Tous les gens disent avoir beaucoup de vues
des avantages, mais je trouve pas
les inconvénients, pourquoi donc?
MODIFIER
Sur la base des réponses de tous les experts, je pense que je peux les résumer:
- Lors de la table est supprimée ou modifiée, la vue devient inactif, il dépend sur les objets de la table.
- Pas tout le temps, nous pouvons effectuer des instructions DML, car normalement les points de vue sont faites pour la requête complexe et dépend plus d'une table. Donc, il n'y a plus de possibilités de violation de votre base de données des contraintes lors de l'exécution des instructions DML.
- Que les points de vue sont normalement utilisés pour un complexe statique de la requête, et non pas toutes les fois que nous pouvons avoir la même situation à l'utilisation que statique de la requête. Par exemple;
Si vous vous interrogez sur la vue, il semblerait que vous économisez du temps , mais si vous êtes à la recherche de quelques informations de la vue, alors vous pouvez faire face à preformace dégradation de problème.
- Plus tard, je lui ai répondu que les vues ne sont rien, mais une requête complexe et peut être traitée comme un objet ou d'une table ou d'une source.
Vous devez vous connecter pour publier un commentaire.
lors de la table n'est pas là ne sera pas de travail.
dml n'est pas possible si c'est plus d'une table.
c'est aussi objet de base de données de sorte qu'il va occuper la place.
Lors de la table est supprimée de la vue devient inactif.. ça dépend des objets de la table.
L'interrogation de la vue prend plus de temps que interrogeant directement à partir de la table
La plupart des choses que je voudrais dire, ont déjà été abordés, je voudrais ajouter ce bien.
Vues sont utiles dans de nombreuses situations, mais à trop les utiliser peut-être une erreur, parce qu'ils attachent les mains en termes de structure de la requête. Souvent, lorsque l'ensemble de votre requête contient plusieurs points de vue à l'intérieur (en particulier lorsque les vues sont superposés), ou lors d'un point de vue a été adapté pour un but légèrement différent de ce qui était prévu initialement, vous trouverez qu'il ya une bien meilleure façon d'écrire la requête si vous venez d'élargir les points de vue et modifier la logique.
Comme tout outil, les vues peuvent être mal utilisés, en particulier lorsque vous n'êtes pas sûr de savoir comment ils doivent être utilisés correctement.
Chris Mullins définit trois de base en vue de la mise en œuvre des règles:
Si vous n'obtenez pas ces choses vous obtenez le code de problèmes d'entretien, des problèmes de performances, les problèmes de sécurité, etc.
Le seul inconvénient que je peux penser, c'est que vous pouvez forcer l'utilisateur à se joindre à plusieurs points de vue pour obtenir les données d'une manière qui leur est utile, car vous avez désormais largement statique requêtes.
Donc, si la vue a été créée à un moment et il est prévu pour ne jamais changer, vous pouvez vous retrouver avec une prépondérance des points de vue qui crée un labyrinthe pour l'utilisateur de naviguer à travers, donc il devrait y avoir un processus de mise à jour des vues, pour les garder utile que les besoins changent.
1) lorsqu'une table est supprimée ,la vue sera affectée.
2) Si le nom de colonne est renommé ensuite vue montre d'exception "nom de colonne non Valide" .
3)Lorsque la vue est créé pour une grande table ,il s'occupe de la mémoire .
Si vous écrivez des vues complexes, tandis que l'interrogation de données simples de la vue, il faudra plus de temps.
Il affecte les performances. L'interrogation de la vue prend plus de temps que interrogeant directement à partir de la table.
Si l'affichage de rejoindre plus d'une table, vous ne pouvez pas effectuer toute DML
les opérations.
Table de dépendance, si vous changez de table, vous devez
mise à jour de la vue aussi.
Vue permet de DBA (administrateur de base de données) afin de bien contrôler ce qui entre et sort d'une base de données.
Dans le secteur bancaire d'un point de vue est souvent utilisé en permanence de garder une trace de toutes les modifications apportées à la table. La "vraie" table contient généralement des colonnes supplémentaires qui ne sont pas vu par "la vue", tels que:
Donc, lors de l'affichage de la vue de la table que la dernière mise à jour ou l'ajout d'une ligne est affichée. Toutefois, le tableau contient encore chaque changement et de suppression de ligne.
L'inconvénient majeur d'un point de vue est à l'utilisateur de la table (le programmeur d'application) qui ne peut pas modifier directement la table sous-jacente (pour des raisons de performances, par exemple). En outre, il permet de créer plus de travail pour l'administrateur de base de données. Vous pouvez également envisager le supplément de charge PROCESSEUR placé sur le serveur - en particulier si elle est utilisée par de nombreux clients.
INSTEAD OF
style de déclenchement sur laVIEW
.