1
여러 테이블의 데이터를 요약하는 데이터베이스 뷰 (SQL Server 12.0.2269)가 있습니다. 나는 방금 실행 계획에 대한 경고를 보았습니다. (아마도 항상 거기에 있었을지라도) :CardinalityEstimate 쿼리 경고
식의 변환 (CONVERT (varchar (30), [t]. [RoleID], 0))은 " 쿼리 계획 선택
은 하나 개의 결과 필드입니다 참조하는 실제 쿼리 코드 CardinalityEstimate "-이 같은 분리 된 ID 목록을 생성
(SELECT
'|' + CAST(t.RoleID AS varchar)
FROM Tag t
WHERE t.SourceID = lb.ID
FOR XML PATH('')) + '|'
AS TagIDs,
'| 10 | 11 | 12 |'. RoleID는 tinyint입니다. 복합 기본 키의 일부이며 외래 키이기도합니다.
tinyint이기 때문에 3 자 이상 될 수는 없지만 varchar (30)가 기본값이라고 생각합니다.
이 경고를 무시해도 되나요?
전체 쿼리는이 항목을 기반으로하는 경고를 무시하는 것이 좋은 것 같다
CREATE VIEW [dbo].[LegalBodyReferenceData] AS
SELECT
\t lb.ID,
\t lb.DisplayName,
\t lb.BirthDate,
\t lb.DeathDateAndFlag as DeathDate,
\t
\t ti.Description AS Title,
\t p.FirstNames,
\t p.Surname,
\t
\t lb.Telephone,
\t lb.Email,
\t
\t a.Street,
\t a.Town,
\t a.Region,
\t a.Postcode,
\t a.Country,
\t
\t COALESCE(cf1.ID, ccf.ID) AS ClientFileID,
\t COALESCE(cf1.FileStatusID, cf2.FileStatusID) AS ClientFileStatusID,
\t COALESCE(cf1.AdviserID, cf2.AdviserID) AS ClientFileAdviserID,
\t COALESCE(cf1.DisplayName, cf2.DisplayName) AS ClientFileDisplayName,
\t
\t ISNULL(CAST(CASE WHEN p.ID IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsPerson,
\t ISNULL(CAST(CASE WHEN co.ID IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsCorporate,
\t ISNULL(CAST(CASE WHEN prov.ID IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsProvider,
\t ISNULL(CAST(CASE WHEN Trust.ID IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsTrust,
\t ISNULL(CAST(CASE WHEN cbp.ID IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsCorporateBenefitProvider,
\t (SELECT
\t \t '|' + CAST(t.RoleID AS varchar)
\t FROM Tag t
\t WHERE t.SourceID = lb.ID
\t FOR XML PATH('')) + '|'
\t AS TagIDs,
\t NULL AS Tags,
\t
\t c.MaritalStatusID,
\t p.Gender,
\t u.ID AS UserID,
\t ISNULL(CAST(CASE WHEN ad.ID IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsAdviser,
\t prov.UniqueIdentifier AS ProviderCode,
\t CAST(c.DisplayOrder AS tinyint) AS ClientDisplayOrder,
\t p.InformalSalutation AS InformalSalutation,
\t ISNULL(CAST(CASE WHEN Trust.IsSimpleTrust IS NOT NULL THEN 1 ELSE 0 END AS bit), 0) AS IsSimpleTrust
FROM LegalBody lb
LEFT JOIN Address a ON a.ID = lb.PrimaryAddressID
LEFT JOIN Person p ON p.ID = lb.ID
LEFT JOIN Title ti ON ti.ID = p.TitleID
LEFT JOIN Client c ON c.ID = lb.ID
LEFT JOIN ClientFile cf1 ON cf1.ID = c.PrivateClientFileID
LEFT JOIN Corporate co ON co.ID = lb.ID
LEFT JOIN Provider prov ON prov.ID = co.ID
LEFT JOIN Trust ON Trust.ID = lb.ID
LEFT JOIN CorporateBenefitProvider cbp on cbp.ID = lb.ID
LEFT JOIN CorporateClientFile ccf ON ccf.CorporateID = co.ID
LEFT JOIN ClientFile cf2 ON cf2.ID = ccf.ID
LEFT JOIN [User] u ON u.PersonID = p.ID
LEFT JOIN [Adviser] ad ON ad.ID = u.ID
"상품"을 인용하십시오. 클레임에 대한 신뢰할 수있는 출처가 있습니까 * "이 항목을 기반으로 한 경고를 무시하는 것이 좋습니다"*? –