Oracle - Es viable?

 
Vista:

Es viable?

Publicado por javi (3 intervenciones) el 04/06/2001 10:09:37
Necesito opiniones a la siguiente pregunta?

Creeis que es viable realizar un proceso con dos tablas de 14 MILLONES DE REGISTROS que realice lo siguiente:

-Comparar ambas tablas y los registros que estén en las dos realizar una suma en 10 de sus campos, los que esten en la 1ª y no en la 2ª que se inserten en la 2º y, por último, los que esten en la 2ª y no en la 1ª que se dejen como están.

-Mi pregunta de viabilidad es porque la clave primaria de ambas tablas la componen 29 campos y de estos campos algunos puedes contener valores nulos!. Recordad que son 14 MILLONES DE REGISTROS CADA TABLA.

Que os parece una locura o existiria algúna forma de hacerlo en un tiempo de respuesta razonable?. Necesito opiniones
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Es viable?

Publicado por Adolfo Monterroso (5 intervenciones) el 04/06/2001 17:45:58
Hola
En primer lugar, ORACLE no permite que las columnas que forman parte de la llave primaria sean nulas.

En segundo lugar, yo no he probado con esa cantidad de filas, pero ORACLE es capaz de manejar TERABYTES de información, por lo que no veo porque no se pueda y por ultimo, la sentencia SQL capaz de hacer eso depende únicamente de quien la razone, analize y optimice antes de ejecutarla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es viable?

Publicado por javi (3 intervenciones) el 05/06/2001 09:55:23
El problema como ya comente es que la join entre las dos tablas las tiene que hacer por más de 20 campos que componen la clave primaria y como esta clave no está creada fisicamente en base de datos, pueden venir valores nulos que tambien formarian parte de la primary key.

Es la forma en que está montado, mi opinión es que esto es inviable por el alto número de registros (14 millones) con los que tiene que hacer la join por esos campos y por como esta montada la primary key.

Pero antes de decidir algo me gustaria oir vuestras opiniones.
Muchas gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es viable?

Publicado por JM (54 intervenciones) el 08/06/2001 12:39:24
Yo creo que tienes dos problemas:

1.- El volumen de datos. 14 millones de registros son muchos millones, pero de todas formas, Oracle es capaz de manejar eso y más. Eso si, olvidate de los tiempos de respuesta. Posiblemente sea un proceso que lo tengas que dejar toda la noche ejecutándose, y suba el rendimiento de los procesadores del servidor al 100%.

2.- El diseño que tienen las tablas. Una tabla con una clave primaria de 26 campos, que además admiten nulos, y que la clave primaria no está definida como CONTRAINT en bd, me hace pensar que eso está un "pelín" mal diseñado. De todas formas no conozco el caso y puede ser que fuese la única manera de hacerlo.

Yo lo que intentaría es mejorar el diseño antes de realizar el proceso. Intenta crear índices auxiliares, reordenar los segmentos de las tablas e índices, incluso crear nuevos tablespaces para que los datos de la tabla estén en un disco y los datos de índices en otro.

Sinceramente, creo que con este diseño no puede salir nada bueno. Si fuese un diseño más "normal", puede manejas tablas de todos los registros que quieras, eso si, cuantos más registros, peor tiempo de respuesta.

Bueno, espero que te despeje las dudas.

Saludos

Jose M. Navarro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es viable?

Publicado por javi (3 intervenciones) el 08/06/2001 13:30:43
Muchas gracias Jose, efectivamente está mal diseñado y por eso queria escuchar opiniones de si con lo que hay es posible realizar dicho proceso.
Es con lo que yo me he encontrado y soy de tu misma opinión.
Un saludo y gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar