SQL Server’da Veritabanındaki En Büyük Tabloları ve Index’leri Listelemek

#image_title

Herkese merhaba. Bu yazıda SQL Server’da veritabanındaki en büyük tabloları ve index’leri listelemek ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda veritabanındaki en büyük tabloları ve Index’leri listelemek isteyebilirsiniz.

Aşağıdaki kodu kullanarak sizler de bu işlemi rahatlıkla yapabilirsiniz.

En Büyük Tabloları Listelemek

SELECT TOP 100
	s.[name] AS [schema]
   ,t.[name] AS [table_name]
   ,p.[rows] AS [row_count]
   ,CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS [size_mb]
   ,CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS [used_mb]
   ,CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS [unused_mb]
FROM sys.tables t
JOIN sys.indexes i
	ON t.[object_id] = i.[object_id]
JOIN sys.partitions p
	ON i.[object_id] = p.[object_id]
		AND i.index_id = p.index_id
JOIN sys.allocation_units a
	ON p.[partition_id] = a.container_id
LEFT JOIN sys.schemas s
	ON t.[schema_id] = s.[schema_id]
WHERE t.is_ms_shipped = 0
AND i.[object_id] > 255
GROUP BY t.[name]
		,s.[name]
		,p.[rows]
ORDER BY [size_mb] DESC

En Büyük Index’leri Listelemek

SELECT TOP(100)
    s.[name] AS [schema],
    t.[name] AS [table_name],
    i.[name] AS [index_name],
    i.[type_desc],
    p.[rows] AS [row_count],
    CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS [size_mb],
    CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS [used_mb], 
    CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS [unused_mb]
FROM
    sys.tables t
    JOIN sys.indexes i ON t.[object_id] = i.[object_id]
    JOIN sys.partitions p ON i.[object_id] = p.[object_id] AND i.index_id = p.index_id
    JOIN sys.allocation_units a ON p.[partition_id] = a.container_id
    LEFT JOIN sys.schemas s ON t.[schema_id] = s.[schema_id]
WHERE 
    t.is_ms_shipped = 0
    AND i.[object_id] > 255 
GROUP BY
    t.[name], 
    s.[name],
    i.[name],
    i.[type_desc],
    p.[rows]
ORDER BY 
    [size_mb] DESC

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

73 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!