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

Creacion de Indice para optimizar tabla para busqueda por apellidos y nombres

Estas en el tema de Creacion de Indice para optimizar tabla para busqueda por apellidos y nombres en el foro de SQL Server en Foros del Web. Mis estimados, tengo una tabla de clientes que por ahora cuenta con alrededor de 100 mil registros, y el tamaño se incrementara rapidamente, tengo un ...
  #1 (permalink)  
Antiguo 22/02/2008, 15:56
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
Pregunta Creacion de Indice para optimizar tabla para busqueda por apellidos y nombres

Mis estimados, tengo una tabla de clientes que por ahora cuenta con alrededor de 100 mil registros, y el tamaño se incrementara rapidamente, tengo un campo codigo cliente nvarchar(13), pero por lo general las busquedas que se realizan son por apellidos y nombres, como saben los usuarios mayormente escriben fracciones de dichos campos, a veces la primera letra tan solo, el primer apellido, lo caul hace que el tiempo de consulta sea extremadamente extenso, mi pregunta es, que recomendarian que haga para optimizar las consultas que de por si van a tomar su tiempo.

Les adjunto la estructura de mi tabla de clientes.


CodCliente varchar 13
TipoPersona int 4
ApellidoPaterno varchar 30
ApellidoMaterno varchar 30
ApellidoCasada varchar 30
Nombre varchar 30
Sexo char 1
EstadoCivil varchar 2
NroHijos int 4
Residente bit 1
RazonSocial varchar 100
Siglas varchar 30
TipoEmpresa varchar 2
PaginaWeb varchar 75
FechaNacimiento varchar 8
CodPais varchar 3
TelefonoDomicilio varchar 30
TelefonoCelular varchar 30
TelefonoTrabajo varchar 30
TelefonoReferencia varchar 30
Fax varchar 15
EmailPersonal varchar 40
EmailTrabajo varchar 40
CodCIIU varchar 5
CodSBS varchar 10
CalificacionSBS int 4
CondicionLaboral int 4
EmpresaGiroLaboral varchar 25
Observacion nvarchar 500
Estado int 4
FechaRegistro varchar 25
FechaActualizacion varchar 25



Cualquier sugerencia que venga de parte de ustedes, sera por demas agradecida de mi parte, aca les envio un ejemplo de busqueda.

caso ideal:
exec PERSONA_Get_Nombre @vchApellidoPaterno = 'ramos', @vchApellidoMaterno = 'sajami', @vchApellidoCasada = '', @vchNombre = 'marlon', @intIndEstado = 0

caso real:
exec PERSONA_Get_Nombre @vchApellidoPaterno = 'r', @vchApellidoMaterno = 's', @vchApellidoCasada = '', @vchNombre = '', @intIndEstado = 0


Como veran, solo consultan con las iniciales.

Pendiente de ustedes, me despido.


Saludos Cordiales,

Miguel
__________________
El futbol no es una cuestión de vida o muerte, es mucho más que eso.
  #2 (permalink)  
Antiguo 22/02/2008, 18:35
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Creacion de Indice para optimizar tabla para busqueda por apellidos y nombres

A simple vista, crea un INDICE compuesto por los 3 campos:

ApellidoPaterno varchar 30
ApellidoMaterno varchar 30
ApellidoCasada varchar 30

Que sea de tipo CLUSTER.
  #3 (permalink)  
Antiguo 23/02/2008, 19:42
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
De acuerdo Re: Creacion de Indice para optimizar tabla para busqueda por apellidos y nombres

Gracias iislas, ya lo acabo de hacer, espero que agilice un tanto las consultas, disculpa que siga abusando de tu ayuda, pero crees que exista alguna recomendacion adicional.

Saludos Cordiales,
__________________
El futbol no es una cuestión de vida o muerte, es mucho más que eso.
  #4 (permalink)  
Antiguo 25/02/2008, 16:40
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Creacion de Indice para optimizar tabla para busqueda por apellidos y nombres

No, simplemente que generes un PLAN DE MANTENIMIENTO que se ejecute al menos 1 vez por semana, para que tus indices esten con el mayor tiempo de respuesta.

Saludos.
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 12:16.