Sql 基数估计查询警告

Sql 基数估计查询警告,sql,sql-server,view,warnings,Sql,Sql Server,View,Warnings,我有一个数据库视图SQL Server 12.0.2269,它汇总了许多表中的数据。我刚刚注意到执行计划上有一个警告,尽管它可能一直存在: 表达式CONVERTvarchar30[t].[RoleID]0中的类型转换可能会影响查询计划选择中的CardinalityEstimate 它引用的实际查询代码用于一个结果字段:- (SELECT '|' + CAST(t.RoleID AS varchar) FROM Tag t WHERE t.SourceID = lb.ID FOR

我有一个数据库视图SQL Server 12.0.2269,它汇总了许多表中的数据。我刚刚注意到执行计划上有一个警告,尽管它可能一直存在:

表达式CONVERTvarchar30[t].[RoleID]0中的类型转换可能会影响查询计划选择中的CardinalityEstimate

它引用的实际查询代码用于一个结果字段:-

(SELECT 
    '|' + CAST(t.RoleID AS varchar)
 FROM Tag t
 WHERE t.SourceID = lb.ID
 FOR XML PATH('') ) + '|'
 AS TagIDs,
它生成一个像这样的分隔ID列表“|10 | 11 | 12 |”。 RoleID是一个小玩意;是复合主键的一部分,也是外键

由于是tinyint,它的长度不能超过3个字符,但我猜varchar30是默认值

我可以安全地忽略这个警告吗

完整的查询是

将视图[dbo].[LegalBodyReferenceData]创建为 选择 lb.ID, lb.DisplayName, 出生日期, lb.DeathDate并标记为DeathDate, ti.描述作为标题, p、 名字, p、 姓, lb.电话, lb.电子邮件, a、 街道, a、 城镇, a、 地区,, a、 邮政编码, a、 国家,, COALESCEcf1.ID,ccf.ID作为ClientFileID, 合并CF1.FileStatusID,cf2.FileStatusID作为ClientFileStatusID, 合并CF1.AdviserID,cf2.AdviserID作为ClientFileAdviserID, 合并CF1.DisplayName,cf2.DisplayName作为ClientFileDisplayName, ISNULLCASTCASE当p.ID不为NULL时,则1或0以位结束,0以IsPerson结束, ISNULLCASTCASE当co.ID不为NULL时,则1或0以位结束,0以IsCorporate结束, ISNULLCASTCASE当prov.ID不为NULL时,则1或0作为位结束,0作为IsProvider结束, ISNULLCASTCASE当Trust.ID不为NULL时,则1 ELSE 0以位结束,0以IsTrust结束, ISNULLCASTCASE当cbp.ID不为NULL时,则1 ELSE 0以位结束,0以IsCorporateBenefitProvider结束, 选择 “|”+cast.RoleID AS varchar 来自标签t 其中t.SourceID=lb.ID 对于XML路径+“|” 作为塔吉德, 空作为标记, c、 MaritalStatusID, p、 性别,, u、 ID作为用户ID, ISNULLCASTCASE当ad.ID不为NULL时,则1 ELSE 0以位结束,0以IsAdviser结束, prov.UniqueIdentifier作为ProviderCode, CASTc.DisplayOrder与ClientDisplayOrder一样小, p、 信息评估作为信息评估, ISNULLCASTCASE当Trust.IsSimpleTrust不为NULL时,则1或0以位结束,0以IsSimpleTrust结束 来自LegalBody lb a.ID=lb.PrimaryAddressID上的左连接地址a 左连接人p在p.ID上=磅ID ti.ID=p.TitleID上的左连接标题ti c.ID=lb.ID上的左连接客户端c cf1.ID=c.PrivateClientFileID上的左连接客户端文件cf1 左键在co.ID=lb.ID上加入公司co 左连接提供程序prov ON prov.ID=co.ID Trust.ID=lb.ID上的左加入信任 左侧加入CorporateBenefitProvider cbp on cbp.ID=lb.ID 在ccf.CorporateID=co.ID上左连接CorporateClientFile ccf cf2.ID=ccf.ID上的左连接客户端文件cf2 在u.PersonID=p.ID上左键加入[User]u
LEFT JOIN[Adviser]ad ON ad.ID=u.ID忽略基于此项的警告似乎没有问题:


select子句上的Convert或cast操作不应影响基数估计器。

忽略基于此项的那些警告似乎没有问题:


select子句上的Convert或cast操作不应影响基数估计器。

请引用该项。您是否有可靠的索赔来源?忽略基于此项目的警告似乎没有问题?请引用该项目。您是否有可靠的索赔来源?忽略基于此项的警告似乎没有问题?