QA1000:数组包含部分匹配

当查询使用具有部分匹配的 ARRAY_CONTAINS 函数时,将返回此顾问消息。 该消息阐明了原因并提供改进查询性能的指导。

属性

价值
RuleID QA1000
标题 PartialArrayContains
类别 Performance

原因

该查询与 ARRAY_CONTAINS 第三个参数集一 true起使用,用于检查部分匹配项。

规则说明

使用 ARRAY_CONTAINS 部分匹配可能会导致查询执行效率低下。

建议

替换为ARRAY_CONTAINSVALUE EXISTS和子查询以提高性能。

Example

请考虑以下原始查询:

SELECT VALUE ARRAY_CONTAINS(c.auditEvents, {"type":"invoice","status":"Success"}, true) 
FROM c

然后使用以下更新的查询:

SELECT VALUE EXISTS 
(
	 SELECT VALUE t 
	 FROM t IN c.auditEvents 
	 WHERE t.type = "invoice" AND t.status = "success"
) 
FROM c