Cursores con parámetros???

17/07/2006 - 17:57 por Anl. Geovanny Tomalá | Informe spam
Saludos a los miembros del grupo, tengo una duda existe la forma de crear
cursores en SqlServer 2000 con paso de parámetros que se obtienen desde otro
cursor, es como implementar los cursores con parámetros que se implementan
en Oracle 9i??? si alguien tiene una referencia de como realizar esto me
podrían ayudar con un código de referencia.


Gracias de antemano,


Geovanny Tomalá
Guayaquil - Ecuador

Preguntas similare

Leer las respuestas

#6 Raul
18/07/2006 - 06:10 | Informe spam
eliminar el cursor ya que es una muy mala idea usarlo, SQL no esta
optimizado para su uso





Entonces cuando es que se pueden usar cursores porque leyendo a muchos de
ustedes daria la impresion de que nunca se deben usar cursores. Para que
existen entonces ?? Siguen existiendo en la verson 2005 ? porque me imagino
que deben haberlos eliminado por las tantas criticas de años?

No sera una de esas tantas satanizaciones irracionales y generalizadas que
uno suele ver en los gurúes pero que no tienen realmente bases prácticas o
empíricas o por lo menos no deben ser generalizadas ?

Raul
Respuesta Responder a este mensaje
#7 Carlos Sacristán
18/07/2006 - 08:41 | Informe spam
Los cursores siguen existiendo en la versión 2005 porque siguen teniendo
su utilidad para casos muy, muy concretos.

No es ninguna crítica irracional, sino más bien basada en nuestra
experiencia y en la de los demás. Todo gestor de base de datos relacional
está orientado (y optimizado por tanto) a trabajar con conjuntos; los
cursores postulan por todo lo contrario. Si somos tan "pesados" con este
tema es porque recurrir a los cursores es una solución fácil para el
programador pero que para el motor de la base de datos le obliga a consumir
muchos recursos para obtener un resultado peor.

La gran mayoría de las operaciones que se hacen con cursores se podrían
hacer con una sentencia T-SQL con lo que se gana en eficiencia, seguridad y
eficacia.


Un saludo

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

"Raul" escribió en el mensaje
news:
> eliminar el cursor ya que es una muy mala idea usarlo, SQL no esta
> optimizado para su uso
>


Entonces cuando es que se pueden usar cursores porque leyendo a muchos de
ustedes daria la impresion de que nunca se deben usar cursores. Para que
existen entonces ?? Siguen existiendo en la verson 2005 ? porque me


imagino
que deben haberlos eliminado por las tantas criticas de años?

No sera una de esas tantas satanizaciones irracionales y generalizadas que
uno suele ver en los gurúes pero que no tienen realmente bases prácticas o
empíricas o por lo menos no deben ser generalizadas ?

Raul


Respuesta Responder a este mensaje
#8 Salvador Ramos
18/07/2006 - 10:23 | Informe spam
Hola,

Además de todo lo que te han comentado, de que no debes usar cursores
siempre que puedas evitarlos, quería hacer un comentario que te puede
ayudar.

En Oracle el uso de cursores está muy extendido, y el sistema responde
bastante bien ante su uso, el diseño del motor está optimizado para la
gestión de filas individuales. En cambio en SQL Server, el diseño está
optimizado para el uso de conjuntos de filas, por lo que el rendimiento de
los cursores es peor.
No es un tema de que sea mejor una opción o la otra, sino que es cuestión de
conocer cada uno de los productos e intentar en cada uno de ellos obtener el
mejor rendimiento.

Por otro lado, la mayoría de las cosas que se hacen con cursores se pueden
hacer de otra forma y prescindir de su uso, cosa que no es recomendable en
Oracle y si en SQL Server.

Te recomiendo que empieces a "cambiarl el chip" y a evitar los cursores en
la medida de lo posible. Desde luego, que habrá veces que tengas que
utilizarlos, y para eso están, para cubrir ciertas funcionalidades y casos
que no hay otra alternativa para su resolución.

Conozco varias empresas que han migrado de Oracle a SQL Server, y en un
principio se quejaron mucho del rendimiento, pero el problema no estaba en
SQL Server, sino que usaban SQL Server en función de su experiencia con
Oracle. Una vez que conocieron SQL Server y aprendieron a obtener un buen
rendimiento, y a desarrollar de forma optimizada para él, están muy
contentos con el producto.

Los cursores tienen una funcionalidad bastante interesante, y espero que
siempre estén en el producto, lo único es que sólo deberemos utilizarlos
cuando no encontremos otra alternativa que nos ofrezca mejor rendimiento, o
simplemente no encontremos otra alternativa.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Anl. Geovanny Tomalá" escribió en el mensaje
news:
Saludos a los miembros del grupo, tengo una duda existe la forma de crear
cursores en SqlServer 2000 con paso de parámetros que se obtienen desde
otro cursor, es como implementar los cursores con parámetros que se
implementan en Oracle 9i??? si alguien tiene una referencia de como
realizar esto me podrían ayudar con un código de referencia.


Gracias de antemano,


Geovanny Tomalá
Guayaquil - Ecuador

Respuesta Responder a este mensaje
#9 Carlos Sacristán
18/07/2006 - 10:56 | Informe spam
Hola Salva,

no conozco Oracle, pero me sorprende que un motor de bases de datos
relacional (y por tanto en la teoría relacional) esté optimizado para
trabajar con registros individuales en vez de conjuntos. Es un poco
contradictorio, ¿no crees?


Un saludo

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

"Salvador Ramos" escribió en el
mensaje news:
Hola,

Además de todo lo que te han comentado, de que no debes usar cursores
siempre que puedas evitarlos, quería hacer un comentario que te puede
ayudar.

En Oracle el uso de cursores está muy extendido, y el sistema responde
bastante bien ante su uso, el diseño del motor está optimizado para la
gestión de filas individuales. En cambio en SQL Server, el diseño está
optimizado para el uso de conjuntos de filas, por lo que el rendimiento de
los cursores es peor.
No es un tema de que sea mejor una opción o la otra, sino que es cuestión


de
conocer cada uno de los productos e intentar en cada uno de ellos obtener


el
mejor rendimiento.

Por otro lado, la mayoría de las cosas que se hacen con cursores se pueden
hacer de otra forma y prescindir de su uso, cosa que no es recomendable en
Oracle y si en SQL Server.

Te recomiendo que empieces a "cambiarl el chip" y a evitar los cursores en
la medida de lo posible. Desde luego, que habrá veces que tengas que
utilizarlos, y para eso están, para cubrir ciertas funcionalidades y casos
que no hay otra alternativa para su resolución.

Conozco varias empresas que han migrado de Oracle a SQL Server, y en un
principio se quejaron mucho del rendimiento, pero el problema no estaba en
SQL Server, sino que usaban SQL Server en función de su experiencia con
Oracle. Una vez que conocieron SQL Server y aprendieron a obtener un buen
rendimiento, y a desarrollar de forma optimizada para él, están muy
contentos con el producto.

Los cursores tienen una funcionalidad bastante interesante, y espero que
siempre estén en el producto, lo único es que sólo deberemos utilizarlos
cuando no encontremos otra alternativa que nos ofrezca mejor rendimiento,


o
simplemente no encontremos otra alternativa.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Anl. Geovanny Tomalá" escribió en el mensaje
news:
> Saludos a los miembros del grupo, tengo una duda existe la forma de


crear
> cursores en SqlServer 2000 con paso de parámetros que se obtienen desde
> otro cursor, es como implementar los cursores con parámetros que se
> implementan en Oracle 9i??? si alguien tiene una referencia de como
> realizar esto me podrían ayudar con un código de referencia.
>
>
> Gracias de antemano,
>
>
> Geovanny Tomalá
> Guayaquil - Ecuador
>


Respuesta Responder a este mensaje
#10 Salvador Ramos
18/07/2006 - 11:14 | Informe spam
Si, pero te sorprendería el resultado que tiene la utilización de los
cursores acostumbrado al que tienes en SQL Server, la verdad es que van muy
bien, y se utilizan con mucha frecuencia. Además no se recomienda no
usarlos.

Por eso he hecho esos comentarios, porque precisamente uno de los puntos en
los que se tiene que cambiar cuando se migra de Oracle a SQL Server es en
utilizar los cursores lo menos posible.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Hola Salva,

no conozco Oracle, pero me sorprende que un motor de bases de datos
relacional (y por tanto en la teoría relacional) esté optimizado para
trabajar con registros individuales en vez de conjuntos. Es un poco
contradictorio, ¿no crees?


Un saludo

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

"Salvador Ramos" escribió en el
mensaje news:
Hola,

Además de todo lo que te han comentado, de que no debes usar cursores
siempre que puedas evitarlos, quería hacer un comentario que te puede
ayudar.

En Oracle el uso de cursores está muy extendido, y el sistema responde
bastante bien ante su uso, el diseño del motor está optimizado para la
gestión de filas individuales. En cambio en SQL Server, el diseño está
optimizado para el uso de conjuntos de filas, por lo que el rendimiento
de
los cursores es peor.
No es un tema de que sea mejor una opción o la otra, sino que es cuestión


de
conocer cada uno de los productos e intentar en cada uno de ellos obtener


el
mejor rendimiento.

Por otro lado, la mayoría de las cosas que se hacen con cursores se
pueden
hacer de otra forma y prescindir de su uso, cosa que no es recomendable
en
Oracle y si en SQL Server.

Te recomiendo que empieces a "cambiarl el chip" y a evitar los cursores
en
la medida de lo posible. Desde luego, que habrá veces que tengas que
utilizarlos, y para eso están, para cubrir ciertas funcionalidades y
casos
que no hay otra alternativa para su resolución.

Conozco varias empresas que han migrado de Oracle a SQL Server, y en un
principio se quejaron mucho del rendimiento, pero el problema no estaba
en
SQL Server, sino que usaban SQL Server en función de su experiencia con
Oracle. Una vez que conocieron SQL Server y aprendieron a obtener un buen
rendimiento, y a desarrollar de forma optimizada para él, están muy
contentos con el producto.

Los cursores tienen una funcionalidad bastante interesante, y espero que
siempre estén en el producto, lo único es que sólo deberemos utilizarlos
cuando no encontremos otra alternativa que nos ofrezca mejor rendimiento,


o
simplemente no encontremos otra alternativa.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Anl. Geovanny Tomalá" escribió en el
mensaje
news:
> Saludos a los miembros del grupo, tengo una duda existe la forma de


crear
> cursores en SqlServer 2000 con paso de parámetros que se obtienen desde
> otro cursor, es como implementar los cursores con parámetros que se
> implementan en Oracle 9i??? si alguien tiene una referencia de como
> realizar esto me podrían ayudar con un código de referencia.
>
>
> Gracias de antemano,
>
>
> Geovanny Tomalá
> Guayaquil - Ecuador
>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida