join de vistas penaliza?

08/06/2005 - 15:39 por **joselitux** | Informe spam
Hola

Por necesidades de legibilidad tengo tres vistas que son idénticas que
las tablas originales. O sea que las tablas se llaman por ejemplo
"LK23IJ2" y la vista se llama VISTA_CLIENTES pero son todos sus campos
idénticos ya que la vista se define como "SELECT * FROM LK23IJ2".

Ocurre que tengo una cuarta Vista que hace un JOIN de las otras tres y
me pregunto si no será mejor hacer la VISTA_JOIN_TRES_TABLAS con las
propias tablas en vez de con las vistas de las tablas porque de alguna
manera esté penalizado en el rendimiento por usar una u otra cosa.

¿qué opinais?

Preguntas similare

Leer las respuestas

#1 Maxi
08/06/2005 - 16:13 | Informe spam
Hopla, la vista no penaliza la performance, lo que puede ser es que estes
haciendo join muy grandes y trayendo todo pero todo!! esto no es lo ideal,
lo mejor seria armar join con lo necesario y solo traer los campos que
necesitas.


Salu2
Maxi


"**joselitux**" escribió en el mensaje
news:%23O6FC%
Hola

Por necesidades de legibilidad tengo tres vistas que son idénticas que las
tablas originales. O sea que las tablas se llaman por ejemplo "LK23IJ2" y
la vista se llama VISTA_CLIENTES pero son todos sus campos idénticos ya
que la vista se define como "SELECT * FROM LK23IJ2".

Ocurre que tengo una cuarta Vista que hace un JOIN de las otras tres y me
pregunto si no será mejor hacer la VISTA_JOIN_TRES_TABLAS con las propias
tablas en vez de con las vistas de las tablas porque de alguna manera esté
penalizado en el rendimiento por usar una u otra cosa.

¿qué opinais?
Respuesta Responder a este mensaje
#2 Alejandro Mesa
08/06/2005 - 16:16 | Informe spam
SQL Server debe leer las tablas de sistema para leer la definicion de la
vista y esto no es parte del plan de ejecucion. Preferible que uses las
tablas.

No es una buena practica usar "select *" en la definicion de una vista. Esto
no asegura que si se agrega una nueva columna a la tabla, esta aparecera en
la vista.

Ejemplo:

use northwind
go

create table t1 (
c1 int not null identity unique
)
go

insert into t1 default values
go

create view v1
as
select *
from dbo.t1
go

alter table t1
add c2 int not null default(0)
go

insert into t1 default values
go

select * from dbo.v1
go

drop view v1
go

drop table t1
go


AMB

"**joselitux**" wrote:

Hola

Por necesidades de legibilidad tengo tres vistas que son idénticas que
las tablas originales. O sea que las tablas se llaman por ejemplo
"LK23IJ2" y la vista se llama VISTA_CLIENTES pero son todos sus campos
idénticos ya que la vista se define como "SELECT * FROM LK23IJ2".

Ocurre que tengo una cuarta Vista que hace un JOIN de las otras tres y
me pregunto si no será mejor hacer la VISTA_JOIN_TRES_TABLAS con las
propias tablas en vez de con las vistas de las tablas porque de alguna
manera esté penalizado en el rendimiento por usar una u otra cosa.

¿qué opinais?

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida