RECORRER TABLA SQL

07/04/2005 - 18:50 por MIKE | Informe spam
Caso de RECORRER TABLA SQL.
Hola a todos.
Quiero saber si existe otra Forma de Recorrer una Tabla
SQL que tiene como 17 MIllones de Registros, la cual se
Recorre y linea a linea se llenan sus Datos a Otras 2
Tablas (Ya que están en Codigos que tienen diferentes
significados).
Estoy usando un DECLARE CURSOR-OPEN CURSOR,etc.
Pero el proceso me lleva como 7 u 8 horas.
Quiero saber si puedo mejorar esto o que otra forma puedo
usar.



Tengo una Tabla Principal que es la que Recorro, y dos
Tablas Secundarias una de Datos de Identidad y otra de
Saldos que lleno.



Este es una parte del Contenido de la Tabla Principal TP
que tiene un Solo Campo . Este se refiere a un Solo
Cliente



1E000428886620030430 120092920 1
0020344000000000000000006560NU#EZ TORRAS JOSE MARIO

2E0004288866001073141103060000000000000000004859340

2E0004288866001073841402290000000000000000004941900

2E0004288866001413142503060000007030000000009268704

2E0004288866001413142903010000000000000000009268704

2E0004288866001413812401000000000000000000001343154

2E0004288866001413842402090000000000000000007616404



Asi como este existen datos o lineas alrededor de 17
Millones,



Lo que Hago es usar un Proc Alm. En el que usao el
Declare Cursor , etc.



Por ejemplo , si la Cadena empieza con '1' son datos
para la Tabla Secundaria TS1 y si comienza con '2' para
la

Tabla Secundaria TS2.

El Nombre lo saco usando SUBSTRING, igual saco las
Cuentas Contables , su Codigo de Doc de Identidad, Nro de
Documento de Identidad,

Saldos, dias de atraso, Porcentajes de Calificación de
Riesgo.,etc



Es decir tomo cada Linea y tengo que desagregar datos y
enviarlos Bien a la Tabla Secundaria 1 o 2.



Ese es en Resumen el Problema.



Espero tu Amable ayuda o sugerencias
 

Leer las respuestas

#1 Alejandro Mesa
07/04/2005 - 19:03 | Informe spam
Mike,

Trata creando dos sentencias insert, una para ts1 y otra para ts2. NO CURSOR.

Algo asi como:

insert into ts1 (col1, col2, ..., coln)
select substring(...) as col1, ..., substring(...) as coln
from tabla_principal
where unica_columna like '1%'

insert into ts2 (col1, col2, ..., coln)
select substring(...) as col1, ..., substring(...) as coln
from tabla_principal
where unica_columna like '2%'


AMB

"MIKE" wrote:

Caso de RECORRER TABLA SQL.
Hola a todos.
Quiero saber si existe otra Forma de Recorrer una Tabla
SQL que tiene como 17 MIllones de Registros, la cual se
Recorre y linea a linea se llenan sus Datos a Otras 2
Tablas (Ya que están en Codigos que tienen diferentes
significados).
Estoy usando un DECLARE CURSOR-OPEN CURSOR,etc.
Pero el proceso me lleva como 7 u 8 horas.
Quiero saber si puedo mejorar esto o que otra forma puedo
usar.



Tengo una Tabla Principal que es la que Recorro, y dos
Tablas Secundarias una de Datos de Identidad y otra de
Saldos que lleno.



Este es una parte del Contenido de la Tabla Principal TP
que tiene un Solo Campo . Este se refiere a un Solo
Cliente



1E000428886620030430 120092920 1
0020344000000000000000006560NU#EZ TORRAS JOSE MARIO

2E0004288866001073141103060000000000000000004859340

2E0004288866001073841402290000000000000000004941900

2E0004288866001413142503060000007030000000009268704

2E0004288866001413142903010000000000000000009268704

2E0004288866001413812401000000000000000000001343154

2E0004288866001413842402090000000000000000007616404



Asi como este existen datos o lineas alrededor de 17
Millones,



Lo que Hago es usar un Proc Alm. En el que usao el
Declare Cursor , etc.



Por ejemplo , si la Cadena empieza con '1' son datos
para la Tabla Secundaria TS1 y si comienza con '2' para
la

Tabla Secundaria TS2.

El Nombre lo saco usando SUBSTRING, igual saco las
Cuentas Contables , su Codigo de Doc de Identidad, Nro de
Documento de Identidad,

Saldos, dias de atraso, Porcentajes de Calificación de
Riesgo.,etc



Es decir tomo cada Linea y tengo que desagregar datos y
enviarlos Bien a la Tabla Secundaria 1 o 2.



Ese es en Resumen el Problema.



Espero tu Amable ayuda o sugerencias


Preguntas similares