SQL Server B-Tree indekslerinde indeks anahtarının büyüklüğü neden önemli?


SQL Server bir tablo içinde nispeten az sayıda kaydı alacaksa, bu tabloda işine yarayacak bir indeks olup olmadığına bakar.

Kullanabileceği bir indeks varsa, indeks araması yöntemiyle kayıtları bulur. Bazı tablolarda indeks taramasını alacağı her satır için tekrar tekrar yapması gerekir.

İndeks taraması, datanın üzerinde kurulmuş hiyerarşik bir indeks yapısını kökten başlayıp aşağıya doğru her seviyede bir sayfa okuyacak şekilde taramaktır. İndeks seviyesindeki her sayfada, bir alt seviyedeki sayfaların hangi kayıttan itibaren başladığını ve sayfanın nerede bulunduğunu gösteren kayıtlar vardır. İndeks sayfasının bir alt kademedeki sayfalardan kaçını adresleyebileceğini belirleyen, bir sayfaya bu bilgilerden kaç tanesinin sığacağıdır. Bunu belirleyen ise, indeks anahtarının büyüklüğüdür.

Büyük bir indeks anahtarı indeksinizdeki seviye sayısının artmasına sebep olabilir. Bu da indeksi kullanan sorguların performansını düşürecektir.

Ama merak etmeyin, çoğu tablo için indeks derinliği 2 ya da 3’tür. 3’ü geçmesi için ya gerçekten fazla miktarda veriniz olması ya da indeks anahtarını kötü tasarlamış olmanız gerekir.

Derinliğini öğrenmek istediğiniz bir indeksiniz varsa, INDEXPROPERTY fonksiyonunu indexdepth özelliği ile kullanabilirsiniz.

AdventureWorks üzerindeki bir indeksin çeşitli özelliklerinin alınması için örnek bir sorgu şöyle:

USE AdventureWorks;

GO

SELECT

INDEXPROPERTY(OBJECT_ID(‘HumanResources.Employee’),

‘PK_Employee_EmployeeID’,’IsClustered’)AS [Is Clustered],

INDEXPROPERTY(OBJECT_ID(‘HumanResources.Employee’),

‘PK_Employee_EmployeeID’,’IndexDepth’) AS [Index Depth],

INDEXPROPERTY(OBJECT_ID(‘HumanResources.Employee’),

‘PK_Employee_EmployeeID’,’IndexFillFactor’) AS [Fill Factor];

GO

Bu yazı SQL Server içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s