RDS SQL Server - 最佳实践 - 高CPU使用率系列之数据类型转换

  1. 云栖社区>
  2. 博客>
  3. 正文

RDS SQL Server - 最佳实践 - 高CPU使用率系列之数据类型转换

风移 2017-03-17 14:23:27 浏览4710
展开阅读全文

摘要

前两篇文章讨论了导致CPU高使用率的两个重要原因是索引缺失和索引碎片,本系列文章之三讨论数据类型隐式转换话题。

场景分析

在SQL Server中,比较运算符(大于、小于、等于或者连接)两端的数据类型需要保持一直才能进行。否则,SQL Server会按照数据类型优先级由低到高进行隐式转化,然后再进行比较。这个行为可以通过执行计划中的CONVERT_IMPLICIT关键字看出来,后面的测试例子中,我们可以清楚的看到这一点。如果很不幸,导致SQL Server正式表字段数据类型隐式转换会带来几个方面的问题:
 数据经过了转换,所以执行计划无法走更优的Index Seek,进而选择Index Scan
 由于Index Scan,所以I/O消耗很高
 数据类型转换计算和I/O飙高,导致CPU使用率很高
SQL Serve

网友评论

登录后评论
0/500
评论