Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2011, 11:08
jamesd3ao
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Optimizar un Procedimiento...

Holas,

Soy nuevo en esto de las BD... tengo un procedimiento que de debe traer los registros de acuerdo al parametro del nombre completo, el cual está dividido en 4 campos, primer nombre, segundo nombre... el procedimiento al parecer me está funcionando bien, pero está demorando bastante... les coloco este para ver si me pueden decir de que manera optimizarlo. Agradezco toda la colaboración posible!!!
ALTER PROCEDURE [dbo].[Cal_D_Adms_PaciBuscNombComp]

@pvNC AS VARCHAR(200)= NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT @pvNC = '%'+UPPER(+LTRIM(RTRIM(@pvNC)))+'%'
Select Distinct
yIdPaciente,
vIdentificacion,
tIdent,
vPNombre,
vSNombre,
vPApellido,
vSApellido,
vGenero,
CONVERT(DATE,dFechaNacimiento) AS dFechaNacimiento,
FechaIngreso,
Sede,
Bloque,
Piso,
servicio,
CamaID
FROM
(
select Distinct
PA.yIdPaciente,
PA.vIdentificacion,
PA.iIdTipoIdentificacion,
PA.vPNombre,
PA.vSNombre,
PA.vPApellido,
PA.vSApellido,
PA.vGenero,
PA.dFechaNacimiento,
i.vNombre AS tIdent,
AD.FechaIngreso,
SE.Sede,
AD.Bloque,
AD.Piso,
CA.Ubicacion as servicio,
AD.CamaID,
PA.vPNombre+' '+PA.vSNombre+' '+PA.vPApellido+' '+PA.vSApellido as NombreCompleto,
FROM dbo.D_Adms_Paciente PA
INNER JOIN dbo.Tbl_Admision AD ON AD.NroIdentificacion = PA.vIdentificacion
INNER JOIN dbo.Tbl_Cama CA ON CA.CamaID = AD.CamaID
INNER JOIN dbo.Tbl_Cama C1 ON CA.Piso = AD.Piso
INNER JOIN dbo.Tbl_Servicio2 SV ON CA.Ubicacion = SV.Servicio
INNER JOIN dbo.Tbl_Piso p ON p.ID = CA.Piso
INNER JOIN dbo.Tbl_Bloques BL ON BL.ID = CA.Bloque
INNER JOIN dbo.Tbl_Sede SE ON SE.iIdSede = BL.iIdSede
INNER JOIN dbo.D_Config_TipoListaItem i ON PA.iIdTipoIdentificacion = i.iIdTipoListaItem


INNER JOIN(
SELECT DISTINCT MAX(j.FechaIngreso) FECH
FROM
dbo.D_Adms_Paciente a
INNER JOIN dbo.Tbl_Admision j ON j.NroIdentificacion = a.vIdentificacion

GROUP BY a.vIdentificacion )PIJ ON PIJ.FECH = AD.FechaIngreso
)AS PF
where
(NombreCompleto like @pvNC COLLATE Modern_Spanish_CI_AI)
order by FechaIngreso desc
END