como evito cursores? (q hacer para q sea mas rapido)

12/10/2004 - 23:33 por Julia | Informe spam
Hola a todos
Antes q nada muchas gracias por sus respuestas.

Por lo q he leído en este grupo ESTAN EN CONTRA DE LOS CURSORES , yo uso
muchos, y es verdad son exageradamente lentos, pero no se como substituirlos,
asi q agradeceré todas sus sugerencias

Tengo una tabla T_ALUMNOS (3,000,000 registros) donde se van guardando el
perfil de cada alumno: nombre, edad, id_entidad, id_municipio, id_localidad,
id_escuela, etc.

Por otra parte tengo tablas de catálogos:
T_MUNICIPIO => id_entidad, id_municipio, municipio
T_LOCALIDAD => , id_entidad, id_municipio, id_localidad, localidad
T_ESCUELA => , id_entidad, id_municipio, id_localidad, id_escuela, escuela

Mi cursor lo q hace es revisar que los campos q corresponden a la llave de
cada tabla de catálogos sea correcta.
Por ejemplo q la combinación de , id_entidad, id_municipio, id_localidad en
T_ALUMNOS se encuentre en T_LOCALIDAD
O q la combinación de id_entidad, id_municipio de T_ALUMNOS se encuentre en
T_MUNICIPIO
Si alguna de las combinaciones no son correctas actualizo el campo con un
valor q yo defino.

De esta forma tengo un cursor para cada tabla Catalogo

Muchas gracias por sus valiosas aportaciones

Saludos Julia
 

Leer las respuestas

#1 MAXI
13/10/2004 - 00:40 | Informe spam
Hola Julia!! con mucho gusto te voy a dar una mano :-)

Mira lo que estas exponiendo se puede solucionar de una forma muy simple,
usa claves externas (en SQL se llaman Foreign Keys), esto hace lo que buscas
y sin ningun esfuerzo :-)

Ahora bien, para hacer lo que haces como lo estas haciendo y sin cursor,
podrias usar:

UPDATE TABLA SET CAMPO=TUVALOR WHERE
CAMPO_ID NOT IN (SELECT ID FROM TABLAMAESTRO)

Pero como te comente antes, trata de implementar claves externas, porque
este tipo de cosas ya las administra tu motor :-)




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messager:

"Julia" escribió en el mensaje
news:
Hola a todos
Antes q nada muchas gracias por sus respuestas.

Por lo q he leído en este grupo ESTAN EN CONTRA DE LOS CURSORES , yo uso
muchos, y es verdad son exageradamente lentos, pero no se como
substituirlos,
asi q agradeceré todas sus sugerencias

Tengo una tabla T_ALUMNOS (3,000,000 registros) donde se van guardando el
perfil de cada alumno: nombre, edad, id_entidad, id_municipio,
id_localidad,
id_escuela, etc.

Por otra parte tengo tablas de catálogos:
T_MUNICIPIO => id_entidad, id_municipio, municipio
T_LOCALIDAD => , id_entidad, id_municipio, id_localidad, localidad
T_ESCUELA => , id_entidad, id_municipio, id_localidad, id_escuela, escuela

Mi cursor lo q hace es revisar que los campos q corresponden a la llave de
cada tabla de catálogos sea correcta.
Por ejemplo q la combinación de , id_entidad, id_municipio, id_localidad
en
T_ALUMNOS se encuentre en T_LOCALIDAD
O q la combinación de id_entidad, id_municipio de T_ALUMNOS se encuentre
en
T_MUNICIPIO
Si alguna de las combinaciones no son correctas actualizo el campo con un
valor q yo defino.

De esta forma tengo un cursor para cada tabla Catalogo

Muchas gracias por sus valiosas aportaciones

Saludos Julia

Preguntas similares