Membuat Indeks dengan Kolom yang Disertakan

Topik ini menjelaskan cara menambahkan kolom yang disertakan (atau non-kunci) untuk memperluas fungsionalitas indeks non-kluster pada SQL Server 2014 dengan menggunakan SQL Server Management Studio atau Transact-SQL. Dengan menyertakan kolom non-kunci, Anda dapat membuat indeks non-klustri 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 saat 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 berkluster tidak diakses yang menghasilkan lebih sedikit operasi I/O disk.

Catatan

Saat indeks berisi semua kolom yang dirujuk oleh kueri, indeks biasanya disebut sebagai mencakup kueri.

Dalam Topik Ini

Sebelum Anda mulai

Rekomendasi Desain

  • Mendesain ulang indeks non-kluster dengan ukuran kunci indeks besar sehingga hanya kolom yang digunakan untuk pencarian dan pencarian yang merupakan kolom kunci. Buat semua kolom lain yang mencakup kueri ke dalam 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 nonkluster.

  • Semua jenis data kecuali text, ntext, dan image dapat digunakan sebagai kolom non-kunci.

  • Kolom komputasi yang deterministik dan tepat atau tidak tepat dapat berupa kolom nonkunci. Untuk informasi selengkapnya, lihat Indeks pada Kolom Komputasi.

  • Kolom komputasi yang berasal dari imagejenis data , , ntextdan text dapat 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, atau varbinary .

Keamanan

Izin

Memerlukan izin UBAH 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 nonkunci

  1. Di Object Explorer, klik tanda plus untuk memperluas database yang berisi tabel tempat Anda ingin membuat indeks dengan kolom non-kunci.

  2. Klik tanda plus untuk memperluas folder Tabel .

  3. Klik tanda plus untuk memperluas tabel tempat Anda ingin membuat indeks dengan kolom nonkunci.

  4. Klik kanan folder Indeks , arahkan ke Indeks Baru, dan pilih Indeks Non-Kluster....

  5. Dalam kotak dialog Indeks Baru , pada halaman Umum , masukkan nama indeks baru dalam kotak Nama indeks.

  6. Di bawah tab Kolom kunci indeks, klik Tambahkan....

  7. Dalam kotak dialog Pilih Kolom daritable_name , pilih kotak centang atau kotak centang kolom tabel atau kolom yang akan ditambahkan ke indeks.

  8. Klik OK.

  9. Di bawah tab Kolom yang disertakan , klik Tambahkan....

  10. 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.

  11. Klik OK.

  12. Dalam kotak dialog Indeks Baru , klik OK.

Menggunakan T-SQL

Untuk membuat indeks dengan kolom nonkunci

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar, klik Kueri Baru.

  3. 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).