QA1002: Berisi efek performa fungsi

Pesan advisor ini dikembalikan ketika kueri menggunakan fungsi CONTAINS. Pesan mengklarifikasi alasan dan memberikan panduan untuk meningkatkan performa kueri.

Karakteristik

Nilai
RuleID QA1002
Title Contains
Kategori Performance

Penyebab

Kueri menggunakan CONTAINS fungsi .

Deskripsi Aturan

CONTAINS bisa mahal dan lambat karena membutuhkan pemindaian penuh.

Recommendation

Jika niat menggunakan CONTAINS adalah untuk mencocokkan pada awalan string, gunakan STARTSWITH sebagai gantinya, yang melakukan pemindaian indeks yang tepat dan dapat lebih hemat biaya.

Jika Anda melakukan pencarian string yang tidak peka huruf besar/kecil, pertimbangkan untuk menentukan dan mengindeks properti komputasi yang memproyeksikan LOWER(c.stringSearchProperty) dan menggunakan pencarian string peka huruf besar/kecil sebagai gantinya.

Example

Kueri asli:

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

Niat kueri adalah untuk category mencari yang dimulai dengan Historical. Dalam hal ini, kueri berikut memiliki performa yang lebih baik dengan properti c.cp_categorykomputasi :

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