Hola a todos, antetodo agradeceros por la atención.
Mi duda quizás sea muy básica, pero no tengo muy claro el
funcionamiento.
Me piden crear una vista sobre 2 tablas A y B.
Resulta que la tabla A es muy grande y se utiliza muchísimo por la
aplicación.
Cómo sería el funcionamiento natural del sqlserver?:
1) cada vez que actualice la tabla A obligo al sqlserve a refrescar la
vista. Si funciona así, estaríamos hablando que creando una vista
estoy penalizando el rendimiento de toda aplicación que toque la tabla
A. (obligo al sistema a actualzar la vista).
2) a la inversa, es decir, independientemente de que actualice la
tabla A, la vista solo se actualiza en el momento de utilizarla. Esto
quiere decir que la aplicación no se penaliza, solo que las vistas
tienen una ligera penalización porque tiene que recalcular cada vez
que se llame.
Como veis, mi duda nace porque tenemos una aplicación muy grande cuyo
motor viene a ser la tabla A, y ahora el cliente pide una vista sobre
dicha tabla, pero para una aplicación nueva que es muy pequeña y que
se utiliza mucho menos A ver si por poner la vista voy a penalizar
la aplicación grande
Y por otro lado, ¿el hecho de lanzar la vista, bloquea el registro que
está leyendo como hacen las tablas? En caso afirmativo, ¿existen
también instrucciones para hacer que la vista no bloquee nada? (como
el with nolock que se utiliza en las tablas...)
Gracias de antemano a todos por la atención prestada.
Leer las respuestas