Ben sütun CompanyName nvarchar(250)
içeren bir tablo Com_Main
var. Sonra bu sütun üzerinde Index oluşturmakBilgisayarlı sütun dizini
alter table Com_main
add left20_CompanyName as LEFT(CompanyName, 20) PERSISTED
: Bu 250.
Ben hesaplanan bir sütun CompanyName
ilk 20 karakter içerir left20_CompanyName
eklemek istediğiniz performansı artırmak için = 19 ortalama uzunluğunu, maks uzunluğa sahiptir : kullandığım Yani
create index ix_com_main_left20CompanyName
on Com_main (LEFT20_CompanyName)
select CompanyName from Com_Main
where LEFT20_CompanyName LIKE '122%'
bu kümelenmemiş endeksi kullanır, ancak sorgu gibi olduğunda:
select CompanyName from Com_Main
where CompanyName LIKE '122%'
O tam tablo taraması kullanır ve bu endeksi kullanmayın.
Yani soru:son sorguda SQL Server kullanımı hesaplanabilir sütun üzerinde bu dizini yapmak mümkün mü?
Evet, haklı olduğunuzu düşünüyorum, ancak asıl amaç hesaplanmış bir sütunu indeks olarak kullanmanın mümkün olup olmadığını kontrol etmekti. Tabii ki sonunda CompanyName sütununda bir dizin oluşturdum. Ben MS SQL varchar sütunu kısmi indeksleme desteklemediği görünüyor, bu yüzden bu cevaptır. –