Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Busqueda problema por columna

Estas en el tema de Busqueda problema por columna en el foro de Oracle en Foros del Web. Hola a todos. Tengo una duda de como puedo realizar una búsqueda mas rápida en una tabla, les platico el problema Se tiene un sistema, ...
  #1 (permalink)  
Antiguo 19/02/2014, 16:59
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 15 años, 2 meses
Puntos: 0
Busqueda problema por columna

Hola a todos.

Tengo una duda de como puedo realizar una búsqueda mas rápida en una tabla, les platico el problema

Se tiene un sistema, el cual es privativo por lo que no se puede tocar nada a la base de datos (estructura) ya que se pierde la garantía, por ende no puedo poner índices a la tabla,

La columa por la que hacemos búsqueda es un varchar2 de 25, esa columna es la principal por la que hacemos la consulta y diario se realizan miles de insters y update, no podemos usar las columnas que tienen índice ya que son usados por el sistema

el problema es que ya las búsquedas son muy lentas por lo mismo, ya eliminaron bastantes registros esperando que fuera mas rápido la búsqueda, pero no se ve gran mejoría.
Que otras opciones tengo y como puedo consultar las opciones para mejorar el rendimiento en la base de datos, y si se puede en esa tabla en especial con esa columna,

Espero me puedan ayudar, gracias de antemano
  #2 (permalink)  
Antiguo 20/02/2014, 02:49
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Busqueda problema por columna

¿ perdeis garantia por crear un indice???????????, creo que os la han clavao bien clavada.

Si tiene muchas operaciones de inserts y deletes es muy posible que esté fragmentada, intenta hacer un move de la tabla, a ver si os alivia algo.
  #3 (permalink)  
Antiguo 20/02/2014, 08:17
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Busqueda problema por columna

Calakra.. Al igual que jc3000 pienso que no tiene mucho sentido esto que dices con respcto a la garantía.

La misma teoría de indices, dice que esos requieren mantenimiento periodico, ya que un indice empieza a desbalancearse.

Definitivamente un move es una muy buena opción, pero adicional, te recomendaría hacer un rebuild de los indices que actualmente estan creados, y adicional una actualización a las estadisticas de la tabla.

Para reconstruir el indice:
Código SQL:
Ver original
  1. ALTER INDEX nombre_indice REBUILD;

Para actualizar estadisticas:
Código SQL:
Ver original
  1. ANALYZE TABLE tabla_donde_tienes_el_indice COMPUTE STATISTICS;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 20/02/2014, 08:33
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Busqueda problema por columna

Claro.

Es que al hacer un move de la tabla, los indices se quedan UNUSABLE y el REBUILD es el complemento perfecto.

Cada maestrillo tiene su librillo y en los indices en lugar de rebuild, prefiero hacer un drop...create....compute estatistics

Y si hay que ser mas "tikis-mikis" y dispones de espacio de sobra y ts para ti solo ( casi nunca es posible ), haces un move a un ts temporal, desgragmentas el ts origen, llevas la tabla a su ts y "rebuildeas" los indices.

Estas operaciones son un coñazo, pero en tablas con mucha caña de lectura-escritura, la mejora del rendimiento es notoria.

Saludos
  #5 (permalink)  
Antiguo 20/02/2014, 17:16
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Busqueda problema por columna

Hola, gracias por contestar, no entendí bien que es lo que hace el move table.

Huesos, la columna por la que busco no tiene o forma parte de un índice, por lo que creo que el reconstruir el índice no es opción ya que no tocaria la columna que quiero,

El analize por lo que entiendo analiza las sentencias que se aplican a la tabla y con ayuda del plan de ejecución busca la mejor sentencia para que le compilador ajuste las sentencias y sea mas rápida la búsqueda, si me equivoco espero me corrijan, no se si apliquen para columnas no indexadas,
y tengo una duda, no hay problema al ejecutarlo? solo se ejecuta cada cierto tiempo para mejorar el performance y no hay problema, por que no lo he ocupado pero he leído al respecto.

Gracias por su tiempo y ayuda,
  #6 (permalink)  
Antiguo 21/02/2014, 07:25
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Busqueda problema por columna

calakra, si tienes una tabla grande y estas realizando busquedas por columnas no indexadas, no hay mucho que se pueda hacer. Siempre tendras problemas de performance.

Si la columna hace parte del indice, los cambios si tendrían efecto positivo.

Para aclarar algo, un indice es un objeto totalmente aislado de la operación de una tabla. Efectivamente, tal como dice jc3000 es mejor borrar indice y volverlo a crear con el mismo nombre. No vería como esta operación pudiese afectar la garantía de un software. Y si es así, entonces deberían llamarlos a reclamar una garantía por mal rendimiento.
Cuando borras un indice, el unico efecto que tiene esto es perdida de performance. Con la recostrucción del mismo, y una actualización de las estadisticas debería mejorar
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 24/02/2014, 12:03
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Busqueda problema por columna

Muchas gracias.

Desgraciadamente lo comente y no medejaron hacer nada, pues como no soy DBA no me compete realizar esas acciones y que les deje hacer su chamba jaajajajaja

Pero gracias, con esto aprendi mas del sistema!!
  #8 (permalink)  
Antiguo 26/02/2014, 01:48
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Busqueda problema por columna

Cuando el usuario final se te queje de lentitud en el aplicativo , bloqueos y similares, les indicas que las quejas a los DBA's, no a ti.

Etiquetas: busqueda, columna, registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:33.