QA1003: Perbandingan string StartsWith Atau StringEquals

Pesan penasihat ini dikembalikan saat kueri menggunakan fungsi perbandingan string yang tidak peka huruf besar/kecil. Pesan mengklarifikasi alasan dan memberikan panduan untuk meningkatkan performa kueri.

Karakteristik

Nilai
RuleID QA1003
Title CaseInsensitiveStartsWithOrStringEquals
Kategori Performance

Penyebab

Kueri menggunakan tidak peka huruf besar/kecil STARTSWITH atau StringEquals.

Deskripsi Aturan

Pencarian string yang tidak peka huruf besar/kecil bisa mahal. Misalnya, peka huruf besar/kecil STARTSWITH menggunakan pemindaian indeks yang tepat, tetapi tidak peka huruf besar/kecil STARTSWITH menggunakan [pemindaian indeks yang diperluas](Gambaran Umum Pengindeksan).

Recommendation

Tentukan dan indeks properti komputasi yang mengonversi string menjadi huruf kecil (atau huruf besar) dan menggunakan perbandingan peka huruf besar/kecil terhadap properti komputasi.

Example

Kueri asli:

SELECT *  
FROM c  
WHERE StringEquals(c.name, "abc", true)

Membuat properti komputasi pada c.name

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

Indeks cp_lowerName dan gunakan kueri yang diperbarui berikut ini:

SELECT * 
FROM c 
WHERE StringEquals(c.name, "abc", false)