OPTIMIZAR CONSULTA.

04/06/2004 - 17:09 por Federico Gómez Riveros | Informe spam
Hola a Todos.

Alguien me podria ayudar a optimizar una consulta que contenga un criterio
de busqueda como

SELECT CAMPO FROM TABLA WHERE CAMPO LIKE '%TEXTO%'

Si mi tabla tiene 1'000.000 de registros, como seria un plan de optimizacion
optimo para esta consulta, sin que presente un alto consumo de recursos del
sistema ?

Federico

Preguntas similare

Leer las respuestas

#1 Maxi
04/06/2004 - 17:15 | Informe spam
Hola, si usas %blabla% no podras optimizarlo mucho!! te recomiendo que
revises el uso de un componente llamado FullText que puedes instalar (si no
lo has hecho en la instalacion) a tu sistema.

Este componente vendria a ser como el Index de Exchange, y te permite
trabajar de forma optima con textos.

Aqui tienes un link donde puedes empezar a mirar

http://www.mug.org.ar/SQL/ArticSQL/237.aspx

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Federico Gómez Riveros" escribió en el mensaje
news:
Hola a Todos.

Alguien me podria ayudar a optimizar una consulta que contenga un criterio
de busqueda como

SELECT CAMPO FROM TABLA WHERE CAMPO LIKE '%TEXTO%'

Si mi tabla tiene 1'000.000 de registros, como seria un plan de


optimizacion
optimo para esta consulta, sin que presente un alto consumo de recursos


del
sistema ?

Federico








Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004
Respuesta Responder a este mensaje
#2 Rodrigo Corral [MVP]
04/06/2004 - 17:22 | Informe spam
Hasta donde yo se una clausula de tipo LIKE '%xxx%' o LIKE '%xxx' siempre va
a suponer escanear toda la tabla, es decir no aprovechara ningún indice. Por
poner un simil, es como si buscas en un guia de telefonos todos los que
tengan como segundo apellido perez, el indice no te sirve de nada, tienes
que recorrer toda la guia.

Creo que los indices full-text indexes ayudarian en este tipo de consultas,
pero no tengo experiencia con ellos, quiza alguien pueda ayudarte.

Sin embargo una consulta de tipo LIKE 'xxx%' si que aprovecharia un indice
sobre el campo.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#3 Javier Loria
05/06/2004 - 10:17 | Informe spam
"Federico Gómez Riveros" wrote in message
news:
Hola a Todos.

Alguien me podria ayudar a optimizar una consulta que contenga un criterio
de busqueda como

SELECT CAMPO FROM TABLA WHERE CAMPO LIKE '%TEXTO%'

Si mi tabla tiene 1'000.000 de registros, como seria un plan de


optimizacion
optimo para esta consulta, sin que presente un alto consumo de recursos


del
sistema ?

Federico



Respuesta Responder a este mensaje
#4 Javier Loria
05/06/2004 - 10:17 | Informe spam
"Federico Gómez Riveros" wrote in message
news:
Hola a Todos.

Alguien me podria ayudar a optimizar una consulta que contenga un criterio
de busqueda como

SELECT CAMPO FROM TABLA WHERE CAMPO LIKE '%TEXTO%'

Si mi tabla tiene 1'000.000 de registros, como seria un plan de


optimizacion
optimo para esta consulta, sin que presente un alto consumo de recursos


del
sistema ?

Federico



Respuesta Responder a este mensaje
#5 Jose Mariano Alvarez \(MUG\)
06/06/2004 - 07:26 | Informe spam
La única optimización posible con ese argumento es un Cover Index (un índice
non clustered) sobre la columna Campo, lo cual transformaría tu consulta de
Clustered Index Scan o Table Scan (scan de las páginas de la tabla) en solo
Index Scan (solo las páginas del índice), con lo cual si la tabla tiene
varias columnas podrías llegar disminuir la cantidad de páginas leidas dado
que solo va a revisar el índice no agrupado y no todas las paginas de
datos.

Sin embargo no vas a poder evitar que haga un scan (revisar todas las filas)
con ese tipo de argumento de búsqueda.


También puedes usar full text search para ese tipo de cosas.
http://www.mug.org.ar/SQL/ArticSQL/237.aspx




Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


"Federico Gómez Riveros" wrote in message
news:
Hola a Todos.

Alguien me podria ayudar a optimizar una consulta que contenga un criterio
de busqueda como

SELECT CAMPO FROM TABLA WHERE CAMPO LIKE '%TEXTO%'

Si mi tabla tiene 1'000.000 de registros, como seria un plan de


optimizacion
optimo para esta consulta, sin que presente un alto consumo de recursos


del
sistema ?

Federico








Revisado por AVG

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 03/06/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida