表达式 try_cast 中的类型转换可能会影响查询计划选择中的基数估计

Oxo*_*xon 10 sql-server cardinality-estimates

我有一个运行得很慢的查询,所以我开始研究执行计划。TRY_CAST是一种确定数据是否可以转换为类型的安全方法。并且计划中有关于 的警告TRY_CAST

 Type conversion in expression try_cast may affect "CardinalityEstimate" in query plan choice
Run Code Online (Sandbox Code Playgroud)

请注意,我不是 DBA 而是编码员。当我谈到数据库的东西时,把我当作一个新手。

提高查询速度的最佳方法应该是什么(基于此问题标题中的警告)?除此之外还有什么TRY_CAST可能有助于加快查询速度,例如,CAST它本身很容易出现异常,而我所知道的安全转换的唯一方法是TRY_CAST

在此处输入图片说明

RLF*_*RLF 19

基本上,这可能意味着类型转换不能有效地使用索引。基数是您可能使用的索引的一个重要属性。为了性能,理想的情况是让数据类型匹配,而不是尝试即时转换它们。

你会发现 Thomas LaRock 的这篇文章很有用:http ://thomaslarock.com/2012/08/why-datatypes-matter-3-ways-they-can-hurt-performance/