Ini sangat tergantung pada indeks dan tipe data.
Menggunakan database Stack Overflow sebagai contoh, seperti inilah tabel Users:

Ini memiliki PK / CX pada kolom Id. Jadi keseluruhan data tabel diurutkan berdasarkan Id.
Dengan itu sebagai satu-satunya indeks, SQL harus membaca semuanya (tanpa kolom LOB) ke dalam memori jika belum ada di sana.
DBCC DROPCLEANBUFFERS-- Don't run this anywhere near prod.
SET STATISTICS TIME, IO ON
SELECT u.Id
INTO #crap1
FROM dbo.Users AS u
Waktu statistik dan profil io terlihat seperti ini:
Table 'Users'. Scan count 7, logical reads 80846, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
SQL Server Execution Times:
CPU time = 2406 ms, elapsed time = 446 ms.
Jika saya menambahkan indeks nonclustered tambahan pada Id saja
CREATE INDEX ix_whatever ON dbo.Users (Id)
Saya sekarang memiliki indeks yang jauh lebih kecil yang memenuhi permintaan saya.
DBCC DROPCLEANBUFFERS-- Don't run this anywhere near prod.
SELECT u.Id
INTO #crap2
FROM dbo.Users AS u
Profil di sini:
Table 'Users'. Scan count 7, logical reads 6587, physical reads 0, read-ahead reads 6549, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
SQL Server Execution Times:
CPU time = 2344 ms, elapsed time = 384 ms.
Kami dapat melakukan lebih sedikit pembacaan dan menghemat sedikit waktu CPU.
Tanpa informasi lebih lanjut tentang definisi tabel Anda, saya tidak bisa benar-benar mencoba mereproduksi apa yang Anda coba ukur lebih baik.
Tetapi Anda mengatakan bahwa kecuali ada indeks spesifik pada kolom tunggal itu, kolom / bidang lain juga akan dipindai? Apakah ini hanya kelemahan yang melekat pada desain tabel rowstore? Mengapa bidang yang tidak relevan dipindai?
Ya, ini khusus untuk tabel rowstore. Data disimpan oleh baris pada halaman data. Bahkan jika data lain pada halaman tersebut tidak relevan dengan permintaan Anda, seluruh baris> halaman> indeks tersebut harus dibaca ke dalam memori. Saya tidak akan mengatakan bahwa kolom lainnya "dipindai" sebanyak halaman yang ada di dalamnya dipindai untuk mengambil nilai tunggal yang relevan dengan kueri.
Menggunakan contoh buku telepon ol: bahkan jika Anda hanya membaca nomor telepon, ketika Anda membalik halaman, Anda mengubah nama belakang, nama depan, alamat, dll bersama dengan nomor telepon.