QA1006:字符串比较中的 UPPER 或 LOWER

当查询在字符串比较中使用 UPPER 或 LOWER 函数时,将返回此顾问消息。 该消息阐明了原因并提供改进查询性能的指导。

属性

价值
RuleID QA1006
标题 UpperLowerComparison
类别 Performance

原因

查询在 WHERE 子句中使用 UPPERLOWER 字符串比较。

规则说明

UPPERLOWER 确定性函数,但不使用该索引。 如果计划进行频繁的不区分大小写的比较,这些函数可能会消耗大量请求单位(RU)。

建议

定义大写或小写属性的计算属性,并定义计算属性的索引。

有关计算属性的详细信息,请参阅 计算属性

Example

原始查询:

SELECT * 
FROM c 
WHERE LOWER(c.name) = "abc"

在 上创建计算属性 LOWER(c.name)

{ 
  "computedProperties": [ 
	{ 
		"name": "cp_lowerName", 
		"query": "SELECT VALUE LOWER(c.name) FROM c" 
	} 
  ] 
}

索引 cp_lowerName 和使用以下更新的查询:

SELECT * 
FROM c 
WHERE cp_lowerName = "abc"