Bu yazımda mevcut bir veritabanı üzerinde bir tablo oluşturup bu tablonun bazı alanlarına Non-Clustered index özelliği vermek istiyorum. Bu işlemi T-SQL ile değil, normal design yolu ile gerçekleştireceğim, dolayısı ile resmederek konuyu anlatıyorum. SQL Server Management Studio altında Deneme adlı bir Database oluşturdum. Daha sonra bu DataBase üzerinde Tables alanında sağ tıklayarak new table diyorum.
Açılan tablo design alanında tablomu oluşturuyorum. Aşağıdaki şekilde olduğu gibi sütunları ve veri tiplerini verdim. Daha sonra tablomu Calisanlar olarak kaydediyorum.
Alanlarımı oluşturdum, veri tiplerini belirledim. Şimdi CalisanID kısmında sağ tıklıyorum ve bu alanı Set Primary Key yapıyorum, yani clustered indeksleme yapıyorum.
Daha sonra yine bu kolon seçili iken altta yer alan Column Properties özelliklerinden Identity Specification kısmını, IsIdentity kısmını YES yapıyorum, burayı YES yapınca altta Identity Increment ve Identity Seed otomatik olarak 1 oluyor. Bu ayar aslında şu anda konumuzla alakalı değil ama yeri gelmişken açıklama yapayım. Şimdi CalisanID kolonumuza verilen değerin eşsiz bir değer olmasını istediğim için bu alanı YES yapıyorum ve böylelikle SQL server bu tablo için her yeni bir satırda CalisanID kısmındaki veriyi kendisi otomatik olarak verecek. Daha sonra bu değer her seferinde 1 artacak çünkü Increment değerimiz de 1. Seed değerimiz de 1 olduğu için başlangıcımız 1’den başlayacak.
Daha sonra tablomuzun üst sekmesinde sağ tıklıyoruz ve tablomuzu Calisanlar adını vererek kaydediyoruz.
Şimdi gelelim asıl konumuza, bir tablomuz var bu tablomuza nasıl non-clustered index ekleriz. Ben Calisanlar tablosunda CalisanAd ve CalisanSoyad alanlarına non-clustered index eklemek istiyorum.
Bunun için öncelikle Deneme veritabanı içinde Calisanlar Tablosunun içeriğini genişletiyorum. (Yandaki + tuşları)Indexes görene kadar genişlettim, aşağıdaki resimde görebilirsiniz.
Görüldüğü üzere şu anda sadece clustered index var. Indexes yazan klasör simgesi üzerinde sağ tıklıyorum. Buradan New Index > Non-Clustered Index seçiyorum
Karşıma bir pencere çıkıyor. Görüldüğü üzere şu anda eklenmiş bir alan yok.
Ben IndexName alanına tamamen keyfi olarak ismailgursoy adını veriyorum, tabi ciddi iş yaparken daha uygun isimler vermek gerek 🙂
Daha sonra ADD butonuna tıklayarak bu sefer karşıma çıkan pencereden CalisanAD ve CalisanSoyad alanlarını tikleyerek OK diyorum ve bu pencereyi kapatıyorum. Daha sonra alttaki pencereye seçtiğim alanlar geliyor, görüldüğü üzere burada görebiliyorum ve burdan da OK diyerek çıkıyorum.
İşlem bu kadar basit. Artık bu iki alana non-clustered indeks özelliği kazandırdım. Birde durumu object explorer üzerinde görelim.
Önce burayı Refresh ediyorum.
Aşağıdaki resimde gördüğünüz üzere non-clustered indeks tanımlanmış. Bu kadar basit. Bir sonraki yazımda görüşmek dileği ile..