Para una funcionalidad de búsqueda, estoy usando una vista que tiene los registros de todas las tablas dentro de las cuales necesito buscar. La vista tiene casi 20 millones de registros. Las búsquedas en contra de esta vista están tomando demasiado tiempo.
¿Dónde debo buscar para mejorar el rendimiento de esta vista?
La definición aproximada de la vista está abajo. Incluye trece mesas y alrededor de treinta campos.
CREATE VIEW [dbo].[v_AllForSearch]
AS
SELECT
FT.firstField AS [firstField]
, FT.fld_primary AS [fld_primary]
, FT.fld_thirdField AS [thirdField]
, FT.fld_fourthField AS [fourthField]
, ISNULL(ST.[fld_firstSearchField],'') AS [firstSearchField]
, ISNULL(TT.[fld_thirdSearch],'') AS thirdSearch
, ISNULL(TT.[fld_fourthSearch],'')AS fourthSearch
, ISNULL(TT.[fld_fifthSearch],'')AS fifthSearch
, ISNULL(FRT.[fld_sixthSearch],'') As [sixthSearch]
, ISNULL(FRT.[fld_seventhSearch],'') AS [seventhSearch]
, ISNULL(FRT.[fld_eightSearch],'')AS [eightSearch]
, ISNULL(FIT.[fld_nineSearch],'') AS [nineSearch]
, ISNULL(SIT.[fld_tenthSearch],'')AS [tenthSearch]
, ISNULL(SET.[fld_eleventhSearch],'') AS [eleventhSearch]
, ISNULL(ET.[twelthSearch],'')AS [twelthSearch]
, ISNULL(NT.[thirteenthSearch],'')AS [thirteenthSearch]
, ISNULL(NT.[fourteenSearch],'') AS [fourteenSearch]
, ISNULL(NT.[fifteenSearch],'') AS [fifteenSearch]
, ISNULL(NT.[sxteenSearch],'') AS [sxteenSearch]
, ISNULL(NT.[seventeenSearch],'') AS [seventeenSearch]
, ISNULL(NT.[eighteenSearch],'')AS [eighteenSearch]
, ISNULL(TT.[ninteenSearch],'') AS [ninteenSearch]
, ISNULL(ELT.[twentySearch],'') AS [twentySearch]
, ISNULL(ELT.[twentyOneSearch],'') AS [twentyOneSearch]
, ISNULL(TWT.[twentyTwoSearch],'') AS [twentyTwoSearch]
, ISNULL(THT.twentyThree,'') AS [twentyThree]
, ISNULL(THT.twentyFour,'') AS [twentyFour]
, ISNULL(THT.twentyFive,'') AS [twentyFive]
, ISNULL(THT.twentySix,'') AS [twentySix]
FROM
tblFirstTable AS FT
LEFT JOIN [tblSecondTable] AS ST
ON ST.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblThirdTable] AS TT
ON TT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblFourthTable] AS FRT
ON FRT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblFifthTable] AS FIT
ON FIT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblSixthTable] AS SIT
ON SIT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblSeventhTable] AS SET
ON SET.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblEighthTable] AS ET
ON ET.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblNinthTable] AS NT
ON NT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblELTnthTable] AS TT
ON TT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblEleventhTable] AS ELT
ON ELT.[fld_primary] = FT.[fld_primary]
LEFT JOIN [tblTwelthTable] AS TWT
ON TWT.[fld_id] = ELT.[fld_id]
LEFT JOIN [tblThirteenthTable] AS THT
ON THT.[firstField]= FT.[firstField]
WHERE fld_Status ..