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

#11 Carlos Sacristán
18/07/2006 - 11:32 | Informe spam
No niego el buen funcionamiento de los cursores en Oracle. Lo que
comento es que me sorprende que vayan en contra del principio por
antonomasia de la teoría relacional (básicamente teoría de conjuntos), no
crees?

Simplemente por este hecho ya no me gusta Oracle :-P


Un saludo

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

"Salvador Ramos" escribió en el
mensaje news:
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
#12 Salvador Ramos
18/07/2006 - 12:36 | Informe spam
Bueno, ocurre con varios gestores relacionales, con DB2 ocurre algo similar.
En defensa de Oracle tengo que decir que un buen gestor de bases de datos, y
que es muy potente, aunque al igual que tu, personalmente me gusta más SQL
Server :-)

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:
No niego el buen funcionamiento de los cursores en Oracle. Lo que
comento es que me sorprende que vayan en contra del principio por
antonomasia de la teoría relacional (básicamente teoría de conjuntos), no
crees?

Simplemente por este hecho ya no me gusta Oracle :-P


Un saludo

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

"Salvador Ramos" escribió en el
mensaje news:
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
#13 Carlos Sacristán
18/07/2006 - 12:47 | Informe spam
Jeje, era broma Salva. No niego que Oracle sea un buen gestor de base de
datos (de hecho, no estoy descubriendo nada nuevo), pero lo que está claro
es que choca.

Respecto de DB2... cada día que trabajo con él más echo de menos SQL
Server


Un saludo

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

"Salvador Ramos" escribió en el
mensaje news:#
Bueno, ocurre con varios gestores relacionales, con DB2 ocurre algo


similar.
En defensa de Oracle tengo que decir que un buen gestor de bases de datos,


y
que es muy potente, aunque al igual que tu, personalmente me gusta más SQL
Server :-)

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:
> No niego el buen funcionamiento de los cursores en Oracle. Lo que
> comento es que me sorprende que vayan en contra del principio por
> antonomasia de la teoría relacional (básicamente teoría de conjuntos),


no
> crees?
>
> Simplemente por este hecho ya no me gusta Oracle :-P
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Salvador Ramos" escribió en el
> mensaje news:
>> 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
#14 Maxi
18/07/2006 - 14:02 | Informe spam
Raul, ya Carlos te ha respondido una parte. Es mas microsoft tiene un
sistema llamado Best Practice Analizer que lo puedes descargar de la web de
forma totalmente gratuita. Este sistema analiza las malas practicas en tus
servidores, y si tienes cursores te lo remarca.

No es muy complicado demostrar que los cursores son muy malos para SQLServer

http://www.configuracionesintegrale...p?articulo)5

Me ha pasado de hacer consultoria y de que empresas tengan procesos con
cursores donde el tiempo de duracion superaba las 24hs, el mismo proceso sin
cursores no llegaba a los 10 minutos.
Es cuestion de cambiar el chip,. en Fox en Access el uso de cursores no es
malo, en SQL Server es muy malo.
Estan deben estar porque hay soluciones que no se pueden hacer sin cursores,
por ej: imaginate que quieres recorrer todos los campos de
INFORMATION_SCHEMA con sus respectivo tipo de dato para hacerte un generador
de codigos de SP's, o bien un Sp donde quiereas recorrer todas las bases de
datos y hacerles un backup.
El concepto es: Primero pensalo sin cursores siempre y deja los cursores
para aquellas cosas que si o si no queda otra, esta demostrado que este tipo
de exepciones no supera el 2%. Yo desarrollo sistemas y algunos con mas de
1.000 tablas (un CRM por ej) y te puedo decir que no uso cursores en nada.
Espero con esto que se comprenda el porque decimos "NO" a los cursores



Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org
Speaker INETA
Speaker Culminis


"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
#15 Salvador Ramos
18/07/2006 - 14:33 | Informe spam
Ufff, de DB2 ni te cuento, trabajé con él en grandes host y después en
AS/400, y vamos como gestor de bases de datos ese si que no lo hecho de
menos ;-)

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:
Jeje, era broma Salva. No niego que Oracle sea un buen gestor de base
de
datos (de hecho, no estoy descubriendo nada nuevo), pero lo que está claro
es que choca.

Respecto de DB2... cada día que trabajo con él más echo de menos SQL
Server


Un saludo

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

"Salvador Ramos" escribió en el
mensaje news:#
Bueno, ocurre con varios gestores relacionales, con DB2 ocurre algo


similar.
En defensa de Oracle tengo que decir que un buen gestor de bases de
datos,


y
que es muy potente, aunque al igual que tu, personalmente me gusta más
SQL
Server :-)

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:
> No niego el buen funcionamiento de los cursores en Oracle. Lo que
> comento es que me sorprende que vayan en contra del principio por
> antonomasia de la teoría relacional (básicamente teoría de conjuntos),


no
> crees?
>
> Simplemente por este hecho ya no me gusta Oracle :-P
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Salvador Ramos" escribió en el
> mensaje news:
>> 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