Rendimiento Query Dinamico

06/06/2005 - 16:15 por Odgc | Informe spam
Buen Dia.

Una Consulta, se degrada mucho el rendiemiento de unas transacciones si en
vez de especificar los campos de una tabla para hacer un insert o update ej:

Update customer
set cusID = a.cusId
from customerX a
where customer = 'test'

Hago un SP ó Función donde yo le pase los parametro y genere un query
dinamico donde lo asigno a una variable para luego ser ejecutada, pero
trabajando con las tablas del sistema sysobjects, sysTypes y sysColumns, y
de esta menaera me evitaria hacer todos los query de las tablas, pero mi
interrogante es si de esta manera pierdo performance.


Saludos.

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
06/06/2005 - 16:27 | Informe spam
Mirate este artículo "Las virtudes y maldades del SQL dinámico", del MVP
Erland Sommarskog:

http://www.hayes.ch/sql/sql_dinamico.html



Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Odgc" wrote in message
news:
Buen Dia.

Una Consulta, se degrada mucho el rendiemiento de unas transacciones si en
vez de especificar los campos de una tabla para hacer un insert o update
ej:

Update customer
set cusID = a.cusId
from customerX a
where customer = 'test'

Hago un SP ó Función donde yo le pase los parametro y genere un query
dinamico donde lo asigno a una variable para luego ser ejecutada, pero
trabajando con las tablas del sistema sysobjects, sysTypes y sysColumns, y
de esta menaera me evitaria hacer todos los query de las tablas, pero mi
interrogante es si de esta manera pierdo performance.


Saludos.


Respuesta Responder a este mensaje
#2 Antonio Ortiz R
06/06/2005 - 16:52 | Informe spam
El rendimiento es el mismo, en mi opinion; la unica diferencia contra un SP
es la seguridad.

Por ahi se discute mucho el 'ahorro' en tiempo en el plan de ejecucion o en
el envio del Query, esto con los equipos actuales a lo maximo lleva unos
pocos milisegundos.

La unica razon a la que daria todo el credito para evitar consultas
dinamicas seria el conservar buenas practicas de desarrollo, esto es,
separar la parte de administracion de datos con las operaciones del cliente.

suerte,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Odgc" escribió en el mensaje
news:
Buen Dia.

Una Consulta, se degrada mucho el rendiemiento de unas transacciones si en
vez de especificar los campos de una tabla para hacer un insert o update


ej:

Update customer
set cusID = a.cusId
from customerX a
where customer = 'test'

Hago un SP ó Función donde yo le pase los parametro y genere un query
dinamico donde lo asigno a una variable para luego ser ejecutada, pero
trabajando con las tablas del sistema sysobjects, sysTypes y sysColumns, y
de esta menaera me evitaria hacer todos los query de las tablas, pero mi
interrogante es si de esta manera pierdo performance.


Saludos.


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