Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan cara menambahkan kolom yang disertakan (atau non-kunci) untuk memperluas fungsionalitas indeks non-kluster di SQL Server 2014 dengan menggunakan SQL Server Management Studio atau Transact-SQL. Dengan menyertakan kolom non-kunci, Anda dapat membuat indeks nonclustered yang mencakup lebih banyak kueri. Ini karena kolom non-kunci memiliki manfaat berikut:
Mereka bisa menjadi jenis data yang tidak diizinkan sebagai kolom kunci indeks.
Kolom tidak dipertimbangkan oleh Mesin Database saat menghitung jumlah kolom kunci indeks atau ukuran kunci indeks.
Indeks dengan kolom non-kunci dapat secara signifikan meningkatkan performa kueri ketika semua kolom dalam kueri disertakan dalam indeks baik sebagai kolom kunci atau non-kunci. Perolehan performa dicapai karena pengoptimal kueri dapat menemukan semua nilai kolom dalam indeks; tabel atau data indeks terkluster tidak diakses sehingga menghasilkan lebih sedikit operasi I/O disk.
Nota
Saat indeks berisi semua kolom yang dirujuk oleh kueri, indeks biasanya disebut sebagai mencakup kueri.
Dalam Topik Ini
Sebelum Anda mulai:
Untuk membuat indeks dengan kolom non-kunci, menggunakan:
Sebelum Anda mulai
Rekomendasi Desain
Desain ulang indeks non-kluster dengan ukuran kunci indeks besar sehingga hanya kolom yang digunakan untuk pencarian dan pencarian yang merupakan kolom kunci. Ubah semua kolom lain yang terkait dengan kueri menjadi kolom non-kunci. Dengan cara ini, Anda akan memiliki semua kolom yang diperlukan untuk mencakup kueri, tetapi kunci indeks itu sendiri kecil dan efisien.
Sertakan kolom non-kunci dalam indeks non-kluster untuk menghindari melebihi batasan ukuran indeks saat ini dari maksimum 16 kolom kunci dan ukuran kunci indeks maksimum 900 byte. Mesin Database tidak mempertimbangkan kolom non-kunci saat menghitung jumlah kolom kunci indeks atau ukuran kunci indeks.
Batasan dan Pembatasan
Kolom non-kunci hanya dapat ditentukan pada indeks non-klaster.
Semua jenis data kecuali
text,ntext, danimagedapat digunakan sebagai kolom non-kunci.Kolom terhitung yang deterministik dan baik tepat maupun tidak tepat dapat menjadi kolom tanpa kunci. Untuk informasi selengkapnya, lihat Indeks pada Kolom Komputasi.
Kolom komputasi yang berasal dari
imagejenis data , ,ntextdantextdapat berupa kolom non-kunci selama jenis data kolom komputasi diizinkan sebagai kolom indeks non-kunci.Kolom non-kunci tidak dapat dihilangkan dari tabel kecuali indeks tabel tersebut dihilangkan terlebih dahulu.
Kolom non-kunci tidak dapat diubah, kecuali untuk melakukan hal berikut:
Ubah nullability kolom dari NOT NULL ke NULL.
Menambah panjang
varcharkolom ,nvarchar, atauvarbinary.
Keamanan
Hak akses
Memerlukan izin ALTER pada tabel atau tampilan. Pengguna harus menjadi anggota peran server tetap sysadmin atau peran database tetap db_ddladmin dan db_owner .
Menggunakan SQL Server Management Studio
Untuk membuat indeks dengan kolom non-kunci
Di Object Explorer, klik tanda plus untuk memperluas database yang berisi tabel tempat Anda ingin membuat indeks dengan kolom non-kunci.
Klik tanda plus untuk memperluas folder Tabel .
Klik tanda plus untuk memperluas tabel tempat Anda ingin membuat indeks dengan kolom non-kunci.
Klik kanan folder Indeks, arahkan ke Indeks Baru, dan pilih Indeks Non-Kluster....
Dalam kotak dialog Indeks Baru, pada halaman Umum , masukkan nama indeks baru dalam kotak Nama indeks.
Di bawah tab Kolom kunci indeks , klik Tambahkan....
Dalam kotak dialog Pilih Kolom daritable_name, pilih kotak centang kolom tabel yang akan ditambahkan ke indeks.
Klik OK.
Di bawah tab Kolom yang disertakan , klik Tambahkan....
Dalam kotak dialog Pilih Kolom daritable_name , pilih kotak centang atau kotak centang kolom tabel atau kolom yang akan ditambahkan ke indeks sebagai kolom non-kunci.
Klik OK.
Dalam kotak dialog Indeks Baru, klik OK.
Menggunakan T-SQL
Untuk membuat indeks dengan kolom non-kunci
Di Object Explorer, sambungkan ke instance Database Engine.
Pada bilah Standar, klik Kueri Baru.
Salin dan tempel contoh berikut ke dalam jendela kueri dan klik Jalankan.
USE AdventureWorks2012; GO -- Creates a nonclustered index on the Person.Address table with four included (nonkey) columns. -- index key column is PostalCode and the nonkey columns are -- AddressLine1, AddressLine2, City, and StateProvinceID. CREATE NONCLUSTERED INDEX IX_Address_PostalCode ON Person.Address (PostalCode) INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID); GO
Untuk informasi selengkapnya, lihat MEMBUAT INDEKS (Transact-SQL).