Katakanlah saya punya tabel seperti ini:
create table SomeTable
(
id int identity(1, 1) not null primary key clustered,
SomeString1 varchar(50) not null,
SomeString2 varchar(50) not null
)
go
create nonclustered index IX_SomeString1
on SomeTable(SomeString1)
go
Jika saya melakukan ini:
insert into SomeTable(SomeString1, SomeString2)
values('foo', 'bar')
go
Dan melihat rencana eksekusi yang sebenarnya, saya hanya melihat Insert Indeks Clustered . Mengapa saya tidak melihat Sisipan Indeks Tidak Tertutup dalam rencana eksekusi?
select * from SomeTable where String1 = 'foo'
, maka saya melihat bahwa pengoptimal permintaan sebenarnya memilih indeksIX_SomeString1
untuk pencarian indeks. Jadi itu harus memperbarui indeks itu, bukan?Jawaban:
Untuk memasukkan satu baris Anda mendapatkan paket yang sempit / per baris
Jika Anda memilih Operator Penyisipan Indeks Berkelompok dan Lihat jendela properti Anda dapat melihat informasi yang sama seperti yang ditunjukkan dalam XML.
Jika Anda mencoba untuk 1.000 baris
Anda mendapatkan rencana lebar / per-indeks yang berbeda dengan operasi yang dibagi secara terpisah
Lihat Wide vs. Narrow Plans atau blog Craig Freedman untuk informasi lebih lanjut tentang keduanya
sumber
Jangan pernah mempercayai tampilan rencana grafis, hanya untuk pemula. Pro selalu melihat XML. Operasi NC ada di sana:
sumber