Ini sebenarnya lebih sulit daripada yang terlihat - DBMS modern yang khas (dan MS SQL Server tidak terkecuali) kadang-kadang akan melakukan pemindaian tabel penuh bahkan jika indeks tersedia, hanya karena itu mungkin lebih cepat pada sejumlah kecil data.
Contoh:
-
Pernyataan terakhir dalam contoh SQL Fiddle ini dapat dipenuhi oleh indeks, namun rencana kueri dengan jelas menunjukkan pemindaian tabel:
-
Tetapi jika kita memasukkan beberapa data , indeks yang digunakan:
Terlebih lagi, keputusan yang dibuat DBMS dapat dipengaruhi oleh seberapa segar/akurat statistik adalah.
Tes yang paling dapat diandalkan untuk mengetahui apakah indeks digunakan adalah dengan mengisi basis data Anda dengan jumlah data yang mewakili dan lalu lihat rencana eksekusi . Dan jangan lupa untuk mengatur waktu eksekusi kueri yang sebenarnya, saat Anda melakukannya!
Contoh yang disederhanakan:jika seluruh tabel masuk ke dalam satu halaman database, akan lebih cepat untuk memuat halaman itu dan menelusurinya secara berurutan, daripada menunggu I/O tambahan untuk halaman yang berisi indeks.