grilla con horas - gracias

20/04/2004 - 16:13 por egc | Informe spam
muchas gracias adrian por tu respuesta!

una consulta

he leido en varios posts la no recomendacion de utilizar
cursores del lado del servidor

¿cuales son las contras de utilizar cursores de SQL-Server
en SPs?
si por ejemplo debe realizarse un proceso por lotes que
recorra gran cantidad de registros (del orden del millon)
y procese cada uno de ellos... ¿tendria inconvenientes el
armar un cursor en el servidor y procesar todo en el motor?

gracias nuevamente!

egc

Preguntas similare

Leer las respuestas

#6 Maximiliano D. A.
20/04/2004 - 20:17 | Informe spam
Bueno ojo con todo esto!! lamentablemente con los Dataset los han vendido
tan mal que da la sensacion como que hay que traer todo al cliente y ahi
procesar,

Esto esta muy mal de verdad, cuanto menos pase por la red y menos
intervengan el cliente mejor aun :), claro si nuestro servidor para hacer
algo va a usar Cursores, yo prefiero si no me queda otra, es ponerlos en el
Cliente, pero solo en ese caso (casi el 1% del total de los que podes hacer)
;-)

Suerte


Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"egc" escribió en el mensaje
news:1b4801c426ec$9786d5b0$

gracias maxi!!

es cierto que no se requiere un cursor para una operacion
tan simple como borrar millones de registros; suponiendo
que el procesamiento aplicado a cada registro es bastante
complejo (hablemos de varios sps involucrados), la
cuestion es saber si es mas eficiente recorrer los
millones de registros con un cursor y procesar cada uno o
traer los registros al cliente, recorrerlos alli y
procesar cada uno (aqui claro que podria traerse de a
partes o algo parecido pues tampoco es tan bueno llevar
millones de registros a un cliente)
mi duda era esa, si conviene dejar el proceso
completamente en el motor (incluso como una tarea
programada de SQL-Server) o repartirlo entre cliente y
servidor.

gracias nuevamente por tu respuesta!
egc



Hola,, que no sea recomendada no quiere decir que no se


pueda usar, por eso
estan.

Es como todo amigo, en programacion tambien pasa lo


mismo, hay buenas
tecnicas de programacion y uno se pregunta y el resto?


bue los cursores hay
casos que si valen la pena (son los minimos) pero por ej:

si vos queres por ej hacer un backup de todas tus bases


de datos no
importando el Servidor y lo queres poner en un Store por


ej, aca no te va a
quedar que usar cursores, pero como ves, el


desplazamiento es minimo, ahora
si tenes una tabla de 10.000.000 de registros y pones un


cursor, te moris :(

Hace una prueba, no creas en lo que te podamos decir ;-)

Create una tabla

Insertale con un bucle 1.000.000 de registros
luego borra los registros con Delete from
toma el tiempo

repeti el paso de crear la tabla y poner los registros,


pero ahora armate un
cursor y borralos asi
Delete from tablita where id=@id

@id es el que tomas del cursor

Toma el tiempo y comentanos como te ha ido ;-)

Si no queres borrar los registros podes hacerle un


Update, como quieras,
pero notaras un sustancial cambio :)

Suerte


Salu2
-


-
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
-


-
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"egc" escribió en el mensaje
news:1a1b01c426e6$837baab0$

gracias carlos!

duda: ¿para que fueron creados entonces? ¿MS penso en una
tecnologia no recomendada, que tiende a ser evitada?

egc


El tema de los cursores es que se ejecutan en un


entorno que no está
pensado para procesar elementos individualmente, sino


conjunto de datos, y
un cursor está pensado justamente para lo contrario.


Comprenderás entonces
que cada vez que en este grupo se escucha esa palabra, a


muchos de nosotros
se nos erizan los pelillos...

Entiendo que tratar los registros de forma individual


puede conseguir
que las consultas sean más sencillas, sintácticamente


hablando, pero para el
motor es muy costoso. Casi todo lo que se puede conseguir


con cursores se
puede realizar sin ellos (excepto contadas excepciones),


sólo hay que
echarle un poquito de imaginación. SQL Server te lo


agradecerá ;-)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"egc" escribió en el mensaje
news:18f801c426e1$b2fdc890$

muchas gracias adrian por tu respuesta!

una consulta

he leido en varios posts la no recomendacion de utilizar
cursores del lado del servidor

¿cuales son las contras de utilizar cursores de SQL-




Server
en SPs?
si por ejemplo debe realizarse un proceso por lotes que
recorra gran cantidad de registros (del orden del millon)
y procese cada uno de ellos... ¿tendria inconvenientes




el
armar un cursor en el servidor y procesar todo en el


motor?

gracias nuevamente!

egc


.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date:


19/04/2004


.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida