QA1002: содержит эффект производительности функции

Это сообщение помощника возвращается, когда запрос использует функцию CONTAINS. Сообщение объясняет причину и предоставляет рекомендации по повышению производительности запросов.

Свойства

Ценность
RuleID QA1002
Заголовок Contains
Категория Performance

Причина

Запрос использует функцию CONTAINS .

Описание правила

CONTAINS может быть дорогостоящим и медленным, так как требуется полная проверка.

Recommendation

Если цель использования CONTAINS — соответствовать префиксу строки, используйте STARTSWITH вместо этого, что выполняет точную проверку индекса и может быть более экономичной.

Если вы выполняете поиск строки без учета регистра, рассмотрите возможность определения и индексирования вычисляемого свойства, которое проектируют LOWER(c.stringSearchProperty) и используют поиск строк с учетом регистра.

Example

Исходный запрос:

SELECT * 
FROM c 
WHERE CONTAINS(c.category, "Historical")

Целью запроса является поиск category , который начинается с Historical. В этом случае следующий запрос имеет более высокую производительность с вычисляемого свойства c.cp_category:

SELECT * 
FROM c 
WHERE STARTSWITH(c.cp_category, "historical")