Ms Sql Server Tablo Boyutlarını Görme

Veri tabanı yöneticilerinin kontrol ettikleri konulardan biri de veri tabanı boyutlarındaki artışlardır. Aşırı artan bir veri tabanı boyutunda hangi tablonun buna sebep olduğunu bilmek sorunun çözümüne giden yolu da belirleyecektir.

Boyut artışları tablolardaki kayıt sayısının artışı ile hesaplanabilir ancak tablodaki kolon sayısındaki değişkenlikten dolayı doğru sonuç vermeyecektir. Aşağıdaki sql kodundan faydalanılarak veri tabanında yer alan tabloların KB ve MB cinsinden boyutları görülebilir.

</p>
<p>SELECT<br />
t.NAME AS TableName,<br />
s.Name AS SchemaName,<br />
p.rows AS RowCounts,<br />
SUM(a.total_pages) * 8 AS TotalSpaceKB,<br />
CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,<br />
SUM(a.used_pages) * 8 AS UsedSpaceKB,<br />
CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,<br />
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,<br />
CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB<br />
FROM<br />
sys.tables t<br />
INNER JOIN<br />
sys.indexes i ON t.OBJECT_ID = i.object_id<br />
INNER JOIN<br />
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id<br />
INNER JOIN<br />
sys.allocation_units a ON p.partition_id = a.container_id<br />
LEFT OUTER JOIN<br />
sys.schemas s ON t.schema_id = s.schema_id<br />
WHERE<br />
t.NAME NOT LIKE 'dt%'<br />
AND t.is_ms_shipped = 0<br />
AND i.OBJECT_ID &gt; 255<br />
GROUP BY<br />
t.Name, s.Name, p.Rows<br />
ORDER BY<br />
t.Name</p>
<p>

Yorum Yapın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d blogcu bunu beğendi: