![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consulta sobre procedimiento almacenado
Buenas tardes ante todo. El siguiente hilo lo aperturo para hallar alguna respuesta sobre la implementacion de procedimientos almacenados en MySQL. Antes de continuar, explico la situacion en la que trabajo: Tengo el servidor 5.0.51b-community-nt, en una PC de 80GB con 256MB. En ella creo una base de datos que me permitira controlar los ingresos y egresos de un almacen.
Estas son las tablas con las que dispongo: ct_articulo(informacion articulo), ct_venta y ct_dventa(cabecera y detalle de venta), ct_compra y ct_dcompra(cabecera y detalle de compra) y por ultimo kd_movim y kd_movim(cabecera y detalle de movimiento de almacen distintos a compras y ventas). Todas las tablas mencionadas las cree con el motor MyISAM. No hay ningun problema con la consulta de las tablas. Hasta el momento tengo los modulos de ingresos y egresos. La cuestion viene cuando quiero implementar el procedimiento que realice el proceso de kardeo promedio. Aqui detallo los pasos que realizo para ejecutar dicha tarea: 1. Creo una tabla temporal, denominada ct_movim_artic. En ella traslado las entradas, salidas y demas movimientos registrados en las tablas arriba mencionadas. Esto demora nada mas que 2 segundos. Hasta aqui no hay problemas 2. Al ejecutar el procedimiento de kardeo nombrado sp_kardex_prom, me demora, por un ejemplo 15 segundos solamente para leer 561 registros. Personalmente me parece que es demasiado para hacer un simple promedio. A continuacion les pongo el procedimiento sp_kardex_prom:
Esperando alguna ayuda, agradezco con anticipacion Julio Gonzales Ochoa. Última edición por JulioGO fecha: 01-08-2008 a las 19:27:37. |
#2
|
|||
|
|||
Hola, no he analizado el código a profundida, pero creo que el problema está en los cursores, lo digo por experiencia, en un trabajo anterior un outsourcing hizo una serie de store procedures, con cursores, y era lentísimo, así que a simple vista te recomiendo que evites el uso de cursores a menos que sea sumamente necesario, ahora estoy en mi trabajo pero más tarde vuelvo a entrar a ver si puedo analizar más detenidamente.
Saludos cordiales.
__________________
"La información tiene más valor cuando se comparte" |
#3
|
||||
|
||||
Cita:
coincido con el compañero fer, el uso de cursores en cualquier motor debe ser utilizado cuandos sea estrictamente necesario. En tu caso, el cursor puede ser convertido facilmente a una consulta de actualización que será por mucho más eficiente
__________________
Conoce mi blog http://www.edgartec.com |
#4
|
|||
|
|||
Cita:
Una vez mas gracias por las respuestas. Como dice poliburro, debo convertir el cursor en una consulta de actualizacion. Pero que es eso de consulta de actualizacion. Si pudieras poner un ejemplo seria mejor para entender. Una vez mas gracias. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consejo para principiante sobre Disparador y Procedimiento almacenado | NPIdea | Firebird e Interbase | 5 | 18-06-2008 08:13:00 |
llamar Procedimiento almacenado en una consulta | tcp_ip_es | MySQL | 3 | 17-06-2008 12:47:38 |
Consulta dinámica en procedimiento almacenado | Ivanzinho | Firebird e Interbase | 2 | 24-10-2005 15:26:27 |
Duda sobre procedimiento almacenado | Nuria | Firebird e Interbase | 33 | 01-10-2004 21:09:11 |
Ayuda sobre un Procedimiento Almacenado | Nuria | Firebird e Interbase | 6 | 21-01-2004 13:18:15 |
![]() |
|