Gracias por compartirlo! No sé porqué pero las palabras cursores y punteros siempre me han dado mucho miedo. El estar toqueteando cosas que juegan directo con la memoria y los recursos me da pánico 😅😅
El video que necesitaba, justo tengo un problema en el trabajo con cursores pero estaban mal aplicados y generaban lentitud en el sistema. Gracias a este video tendré claro el tema con los cursores.
Me ha tocado optimizar código legado en SQL con cursores, en muchos aplique la alternativa de usar variables de tipo tabla (con un identity) y recorrerlas con un while, puede ser menos elegante pero mejoro el performance x100 ...
Cada ejecución del cursor es como aumenta la cerveza Argentina con la inflación jaja. Buen video Héctor. Yo las veces que tuve que usar cursor los reemplace con un WHILE. Eso es mejor verdad?. Hay situaciones donde los cursores serían irremplazables???? Saludos.
Creo que el problema de rendimiento sólo pasa en SQL Server porque en Oracle es todo lo contrario, se recomienda usarlo cuando son miles o decenas de miles de registros. Inclusive para millones de registros (Big Data), Oracle tiene estructuras de datos aún más eficientes que se llaman Colecciones (Parecidas a las de Java)
Pues cuando usted quiere definir el orden de llegada de un registro con una posicion, los cursores son ideales para eso, ejemplo: Se quiere establecer la prioridad de posicion de una dirección de deomicilio de varias direcciones de un cliente, con los cursores se pueden alterar el orden de las posiciones existentes con uno nuevo. Ese es un caso que real que me tocó aplicar hace unos años.
Yo los he usado en pruebas de estres de store procedures en cada interacción ejecuto el sp con diferentes parámetros usando un cursor sobre una tabla de datos de entrada. Esto se hace desde visual studio usando SSDT sql server data tools para automatizar los test he integrarlos a test plans de Azure DevOps
En mi trabajo los he visto para recorrer tablas temporales y hacer validaciones o updates a las tablas temporales antes de persistir esa informacion. El tema es que son dificiles de debuggear en produccion o te ocultan errores. Yo prefiero hacer iteraciones de ese tipo en codigo y no en la BD, pero como separan la capa de reglas de negocio en la BD, asi lo manejan.
Es un video tutorial excelente, no los ocupó mucho, por lo que se me suele olvidar la estructura y como manejarlos 😅 Por eso recurro a este vídeo seguido, es el mejor explicado y fácil de seguir, con la diferencia de los objetivos que yo ocupo en mi trabajo, así que son diferentes variables y tablas de origen (La consulta después del FOR) y lo que hará el cursor que estoy armando (la consulta dentro del bucle While).
hola excelente explicacion de cursores, resolviste varias dudas. ahora como se usaria el cursor dentro de otro cursor para recorrer una tabla detalle basado en los valores unicos de la tavbla principal?
Hace tiempo comence a trabajar con .Net y de verdad las dudas que tenia con tus videos me han ayudado bastante en mi trabajo. Tu explicación es acertiva y pones ejemplos muy claros. En verdad que me gusta mucho tu contenido. Saludos desde León Guanajuato.
Saludos hector👋 seria bueno que en un futuro hagas un video hablando del tema Reglas de Negocio en los Store Procedures en mi caso me ha tocado trabajar en aplicaciones que aplican reglas de negocio en procedimientos almacenados por ejemplo cuando se aplican impuestos u otros calculos que suelen cambiar con el tiempo para evitar tener que estar publicando la aplicacion nuevamente en cada modificacion, los cambios se hacen en el SP mas la aplicacion permanece intacta como si nada saludos.
Hola Oscar te saludo del SV, soy miembro de este canal de más de 5 anos, tus videos me ayudan a seguir mejorando en este mundo de la programación, estoy desarrollando en MAUI, pregunta tienes un un video donde utilizar EntityFramework para MAUI ?
hey hermano, en el caso del log de precios que pones, cual sería mas aconsejable?? usando cursores o usando Triggers???gracias por compartir tu sabiduría y que viva el rock y el metal!!!
Genial ... tengo una pregunta ... que diferencia hay entre hacerlo como cursor o hacer un while con consultas ... yo suelo hacer algo similar a lo siguiente... que de malo o de bueno tiene hacerlo como yo? DECLARE @MiTablaMemoria TABLE(ID INT INCREMENT(1,1), Dato VARCHAR(MAX)) INSERT INTO @MiTablaMemoria (Dato) SELECT Campo FROM Table WHERE XYX=1 DECLARE @ID INT SELECT @ID=ID FROM @MiTablaMemoria DELETE @MiTablaMemoria WHERE ID = @ID WHILE NOT @ID IS NULL BEGIN -- ::::: -- Mi lógica -- ::::: SET @ID = NULL SELECT @ID=ID FROM @MiTablaMemoria DELETE @MiTablaMemoria WHERE ID = @ID END
Estaría interesante un vídeo de cómo evitar los cursores. Donde trabajo, por temas de infraestructura y en consecuencia arquitectura, toda la lógica de negocio está en procedimientos almacenados, ahí tenemos que hacer la validación de datos y otras operaciones que en un lenguaje convencional se solucionan con un foreach, pero claro, los cursores consumen muchos recursos
Justo estamos haciendo un pequeño sistema, solo para llevar el control de unas compras, y me sirvio un chingo para hacer una tabla de historico de costos, muchos tenkius
Un DBA alguna vez me dijo que uno de los grandes problemas de los cursores, es que en el monitoreo de la base de datos, no es posible saber cuanto recursos esta consumiendo ese proceso; que evitarlos era lo mejor.
Mis Cursos de Programación: hdeleon.net/cursos-premium/
Gracias por compartirlo!
No sé porqué pero las palabras cursores y punteros siempre me han dado mucho miedo.
El estar toqueteando cosas que juegan directo con la memoria y los recursos me da pánico 😅😅
El video que necesitaba, justo tengo un problema en el trabajo con cursores pero estaban mal aplicados y generaban lentitud en el sistema. Gracias a este video tendré claro el tema con los cursores.
Man saca un curso de sql Eres muy bueno yo me creia hacker con El SELECT :v
Llevo un rato queriendo entenderlo y hasta ahorita con tu vídeo se logró, muchas gracias bro, rifadisimo🤟🏻🤟🏻🤟🏻
Me ha tocado optimizar código legado en SQL con cursores, en muchos aplique la alternativa de usar variables de tipo tabla (con un identity) y recorrerlas con un while, puede ser menos elegante pero mejoro el performance x100 ...
Cada ejecución del cursor es como aumenta la cerveza Argentina con la inflación jaja.
Buen video Héctor.
Yo las veces que tuve que usar cursor los reemplace con un WHILE. Eso es mejor verdad?. Hay situaciones donde los cursores serían irremplazables????
Saludos.
he aprendido mucho contigo!! muchos más videos de SQL sería genial!! muchas gracias por todo!
Ya los había utilizado, pero siempre muy buena y practica explicación👍
Muchas gracias joven Héctor, como siempre excelente contenido y muy amena y atinada explicación, saludos cordiales, Dios lo bendiga.
Creo que el problema de rendimiento sólo pasa en SQL Server porque en Oracle es todo lo contrario, se recomienda usarlo cuando son miles o decenas de miles de registros. Inclusive para millones de registros (Big Data), Oracle tiene estructuras de datos aún más eficientes que se llaman Colecciones (Parecidas a las de Java)
Fenómeno! Buena explicación gracias, todo tiene su recompensa claro que si! 😄👍
Genial ahora solo faltaria un video de casos "reales" en los que seria viable aplicar cursores
Pues cuando usted quiere definir el orden de llegada de un registro con una posicion, los cursores son ideales para eso, ejemplo: Se quiere establecer la prioridad de posicion de una dirección de deomicilio de varias direcciones de un cliente, con los cursores se pueden alterar el orden de las posiciones existentes con uno nuevo. Ese es un caso que real que me tocó aplicar hace unos años.
cuando el cliente no paga bien le llenas de cursores la base
Yo los he utilizado para grandes volúmenes de datos, para extraer por paquetes grandes y no cargar toda la gran cantidad de datos en memoria
Yo los he usado en pruebas de estres de store procedures en cada interacción ejecuto el sp con diferentes parámetros usando un cursor sobre una tabla de datos de entrada. Esto se hace desde visual studio usando SSDT sql server data tools para automatizar los test he integrarlos a test plans de Azure DevOps
Nunca
Los cursores en SQL Server deberían estar prohibidos, se sustituye por una tabla indexada y listo
En mi trabajo los he visto para recorrer tablas temporales y hacer validaciones o updates a las tablas temporales antes de persistir esa informacion. El tema es que son dificiles de debuggear en produccion o te ocultan errores. Yo prefiero hacer iteraciones de ese tipo en codigo y no en la BD, pero como separan la capa de reglas de negocio en la BD, asi lo manejan.
Es un video tutorial excelente, no los ocupó mucho, por lo que se me suele olvidar la estructura y como manejarlos 😅
Por eso recurro a este vídeo seguido, es el mejor explicado y fácil de seguir, con la diferencia de los objetivos que yo ocupo en mi trabajo, así que son diferentes variables y tablas de origen (La consulta después del FOR) y lo que hará el cursor que estoy armando (la consulta dentro del bucle While).
Excelente video, pero no entiendo por qué es necesario usar el while, si el cursor de por si ya está iterando😮
hola excelente explicacion de cursores, resolviste varias dudas. ahora como se usaria el cursor dentro de otro cursor para recorrer una tabla detalle basado en los valores unicos de la tavbla principal?
Genial los cursores 👍
Bien explicado, muchas gracias.
Muy bien explicado
Nunca los he usado pero los he visto implementados en Producción, es interesante ver ejemplos claros de como trabajan. Muy buen trabajo Héctor!
¡Queremos más videos de cursores!
Y muchas gracias por seguir haciendo más videos.
Hace tiempo comence a trabajar con .Net y de verdad las dudas que tenia con tus videos me han ayudado bastante en mi trabajo. Tu explicación es acertiva y pones ejemplos muy claros. En verdad que me gusta mucho tu contenido. Saludos desde León Guanajuato.
Ojalá que sigas con este tema y este nivel técnico. Saludos
Hector un like de oro.....una consulta existirá algún video de utilizar tablas temporales + cursores en SQL
Genial Héctor, otros tips de este estilo no estarían nada mal. Saludos
Los cursores son un arma de doble filo, hay que saberlos usar o evitarlos 😂
En arcgis, la API de la base de datos solo es cursores 🙄
Se puede meter 2 cursores en un mismo procedimiento almacenado ?
Saludos hector👋 seria bueno que en un futuro hagas un video hablando del tema Reglas de Negocio en los Store Procedures en mi caso me ha tocado trabajar en aplicaciones que aplican reglas de negocio en procedimientos almacenados por ejemplo cuando se aplican impuestos u otros calculos que suelen cambiar con el tiempo para evitar tener que estar publicando la aplicacion nuevamente en cada modificacion, los cambios se hacen en el SP mas la aplicacion permanece intacta como si nada saludos.
Yo en el trabajo tenía un proyecto y justamente necesitaba saber de cursores y justo esto me ayudó 🤘🏻 gracias Hector
Excelente video amigo muy duro
Excelente, además de solo mostrar estos temas es importante saber cuando utilizarlo
Algún libro de sql que recomienden??
Gracias Bro. Me ha servido bastante,
Es ud un inconsciente al subirle el precio a la cerveza!
Si no lo entiendes con un mexicano cambia de carrera
Gracias por tu video es genial😊
Excelete topico, lo he usado bastantes en reportes.
Yo los he usado para paginacion de datos
¿Cómo lo harías sin cursores?
Es mejor usar el while solo, o es lo mismo que usar los cursores?
hola que tal esa base de datos pub de donde la sacaste?
Muchas gracias por la aclaración
Hola Oscar te saludo del SV, soy miembro de este canal de más de 5 anos, tus videos me ayudan a seguir mejorando en este mundo de la programación, estoy desarrollando en MAUI, pregunta tienes un un video donde utilizar EntityFramework para MAUI ?
Esta bueno, pero queremos mas videos
hey hermano, en el caso del log de precios que pones, cual sería mas aconsejable?? usando cursores o usando Triggers???gracias por compartir tu sabiduría y que viva el rock y el metal!!!
Gracias Héctor, bienvenida toda información y que mejor que con un ejemplo práctico. Saludos.
While > cursor ????
Hola, Buen Ejemplo. Podrías hacerlo lo mismo con un Cross Apply y un select into. Pues pienso que sería interesante. Saludos
Más videos de cursores
Awante Backend
buenas tardes, tienes agrupados los videos por temas?, me interesan todos los de sql
hdeleon.net/roadmap-sql/
Genial ... tengo una pregunta ... que diferencia hay entre hacerlo como cursor o hacer un while con consultas ... yo suelo hacer algo similar a lo siguiente... que de malo o de bueno tiene hacerlo como yo?
DECLARE @MiTablaMemoria TABLE(ID INT INCREMENT(1,1), Dato VARCHAR(MAX))
INSERT INTO @MiTablaMemoria (Dato) SELECT Campo FROM Table WHERE XYX=1
DECLARE @ID INT
SELECT @ID=ID FROM @MiTablaMemoria
DELETE @MiTablaMemoria WHERE ID = @ID
WHILE NOT @ID IS NULL BEGIN
-- :::::
-- Mi lógica
-- :::::
SET @ID = NULL
SELECT @ID=ID FROM @MiTablaMemoria
DELETE @MiTablaMemoria WHERE ID = @ID
END
Los cursores pueden detectar cambios en la información mientras se ejecutan.
Estaría interesante un vídeo de cómo evitar los cursores.
Donde trabajo, por temas de infraestructura y en consecuencia arquitectura, toda la lógica de negocio está en procedimientos almacenados, ahí tenemos que hacer la validación de datos y otras operaciones que en un lenguaje convencional se solucionan con un foreach, pero claro, los cursores consumen muchos recursos
Justo estamos haciendo un pequeño sistema, solo para llevar el control de unas compras, y me sirvio un chingo para hacer una tabla de historico de costos, muchos tenkius
Gran video. !!!
genial gracias!
Gracias Hector
❤ Genial
Un DBA alguna vez me dijo que uno de los grandes problemas de los cursores, es que en el monitoreo de la base de datos, no es posible saber cuanto recursos esta consumiendo ese proceso; que evitarlos era lo mejor.
Hola, me gustaría saber cómo crear y dropear una tabla en pl, si se pudiera un ejemplo me ayudarías bastante, muchas gracias de antemano
Excelente vídeo. Muchas Gracias!
Muchas gracias, fue muy útil la información
Justo necesito utilizarlo en el trabajo, gracias 😅
Genial
En Oracle se tiene mejor rendimiento al usar cursores?
Hermosa explicacion, muchas gracias
Gracias Héctor, muy claro como siempre
al 100 carnal son de mucha ayuda tus videos
Muy bueno Héctor!
Excelente video, bien explicado
Excelente explicación. Y como bien lo dijiste, traten de evitarlos pero hay que conocerlos