2012-02-20

Bir Tablodaki İndekslerin Page Sayısını Bulma

Bu yazımda sizlere, zaman zaman benim de ihtiyaç duyduğum bir konuya değineceğim: Bir tabloda bulunan indeklerin her birisinin toplam page sayısı bulma.

İndeksler yada tablolar ile ilgili bir operasyon yapmadan önce indeks yada tablomuzun page sayısının ne olduğuna; dolayısıyla disk üzerinde ne kadar yer kapladığına bakarız. Elde ettiğimiz sonucun büyüklüğüne göre ilgili nesne üzerinde ne zaman operasyon yapacağımıza karar veririz.

İndeklerin page sayısını almanın birden çok yolu var. Bu yazımda vereceğim sorgu bu yollardan sadece bir tanesi. Aşağıdaki SQL sorgusunu kullanarak personel tablosundaki indekslerin page sayısını bulalım:

select o.name as TableName, 
i.index_id,
i.name as IndexName,
au.total_pages as TotalPages,
au.used_pages as UsedPages,
au.data_pages as DataPages,
au.type_desc as AllocationType
from sys.allocation_units as au
inner join sys.partitions as p on au.container_id = p.partition_id
inner join sys.objects as o on p.object_id = o.object_id
inner join sys.indexes as i on p.index_id = i.index_id and i.object_id = p.object_id
where o.object_id=object_id('dbo.personel')
order by i.index_id


Sorgu sonucu:



Sorgu sonucunda bulunan bazı alanlar:

TotalPages : İlgili nesne için ayrılmış toplam page sayısı
UsedPages : Kullanımda olan toplam Page sayısı
DataPages : Internal index pages ve allocation-management pages dışındaki (In-row data, LOB data ve Row-overflow data) page sayısını verir.

Bir sonraki yazıda görüşmek dileğiyle.

Hiç yorum yok:

.::YASAL UYARI::.

©2004-2023 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.