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.
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 😅😅
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).
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.
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
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 ?
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 ...
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.
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!!!
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.
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?
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.
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.
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)
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
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
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