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,FROM
vIdentificacion,
tIdent,
vPNombre,
vSNombre,
vPApellido,
vSApellido,
vGenero,
CONVERT(DATE,dFechaNacimiento) AS dFechaNacimiento,
FechaIngreso,
Sede,
Bloque,
Piso,
servicio,
CamaID
(
select Distinct
PA.yIdPaciente,FROM dbo.D_Adms_Paciente PA
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,
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
FROMdbo.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