martes, 19 de mayo de 2009

Manejo de Tablas Organizadas al Indice 10g

Todos tenemos tablas de parámetros, cuentas contables, códigos de compañia, etc, en nuestros sistemas.

El despliegue de información de este tipo de tablas en el sistema, muchas veces nos provoca modificar códigos del aplicativo, para incluir un ordenamiento que no se pensó con anticipación.

Aquí les doy una solucción práctica para mantener los registros de estas tablas, siempre ordenadas en su despliegue sin necesidad de modificar el código fuente del aplicativo y con el mínimo de esfuerzo.

Vamos a crear una tabla que despliegue los nombres de las algunas provincias, - en este caso de mi país - ordenadas siempre, sin importar el orden en que son ingresados los datos en la tabla.

SQL> create table provincias(
provincia varchar2(15) not null, id number(2) not null,
description varchar2(20),
constraint pk_provincias primary key (provincia))
organization index tablespace users
pctthreshold 20 including description overflow tablespace users
SQL> /
Table created.

Lo especial aquí, es la creación de tabla utilizando la opción de organización basada en un índice - en azul -, que para efectos de este ejemplo es el nombre de la provincia.

Vamos a ingresar datos, para ver como funciona la tabla.

SQL> insert into provincias values('&provincia',&id, '&descripcion');
Enter value for provincia: cartago
Enter value for id: 3
Enter value for descripcion: Provincia Azul Azul
old 1: insert into provincias values('&provincia',&id, '&descripcion')
new 1: insert into provincias values('cartago',3, 'Provincia Azul Azul')
1 row created.


SQL> /
Enter value for provincia: san jose
Enter value for id: 1
Enter value for descripcion: Capital del Pais
old 1: insert into provincias values('&provincia',&id, '&descripcion')
new 1: insert into provincias values('san jose',1, 'Capital del Pais')
1 row created.

SQL> /
Enter value for provincia: alajuela
Enter value for id: 5
Enter value for descripcion: Casa del Leon Herido
old 1: insert into provincias values('&provincia',&id, '&descripcion')
new 1: insert into provincias values('alajuela',5, 'Casa del Leon Herido')
1 row created.
SQL> commit;

Commit complete.

Ahora hagamos un consulta sobre la tabla sin agregar cláusula de ordenamiento.


Como pueden observar, aunque las provincias no fueron ingresadas en el orden alfabetico que corresponde al ordenamiento, a la hora de hacer el despliegue de datos, estos aparecen ordenados.

Ingresemos un datos adicional, para estar seguros de que esto funciona.

SQL> insert into provincias values('&provincia',&id, '&descripcion');
Enter value for provincia: heredia
Enter value for id: 4
Enter value for descripcion: Ciudad de las Flores
old 1: insert into provincias values('&provincia',&id, '&descripcion')
new 1: insert into provincias values('heredia',4, 'Ciudad de las Flores')
1 row created.
SQL> commit;
Commit complete.

Asi pueden manejar el ordenamiento de datos de forma ágil.
Recomendaciones:
  • No utilicen con tablas con actualizaciones constantes
  • Tablas en dónde no se conoce el número de registros que pueden llegar a tener
  • Las actualizaciones sobre estas tablas pueden causar consumo importante de I/O


No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar