时间:2021-07-01 10:21:17 帮助过:8人阅读
这段SQL很简单: SELECT userName FROM dbo.User (nolock) WHERE userId = ‘100‘
上面这段简单的SQL语句却隐藏着很一个严重的性能问题:当MyBatis生成该语句,并在SQL Server执行时,参数userId的JDBC Type为nvarchar(4000),但表中userId的数据类型为char(20),因此必然存在着类型转换。
在压力测试场景、或调用频繁的情况下,导致SQL Server CPU严重超标,以及服务吞吐量严重下降。
Mybatis与SQL Server类型转换遇到的坑
标签:col 获得 tle 导致 描述 rom 类型 性能 简单