Tablo Boyutlari ve Satir Sayilari Bulmak

Bir SQL Server veritabaniniz mi var. Veritabanindaki tablolarin boyutlarini ve satir sayilarini mi ögrenmeniz gerekiyor. O zaman asagidaki T-SQL kodu çalistirin, zaman kazanin.


  T-SQL kodunu buradan indirebilirsiniz

 .

/* Tablolar, isimlerine göre siralanir */

SELECT ROW_NUMBER() OVER (ORDER BY TABLE_NAME) AS TABLE_NO, TABLE_NAME, TABLE_SCHEMA INTO #Tablo FROM INFORMATION_SCHEMA.TABLES

 

GO

 

/* Tablo verilerini tutacak geçici tablo yaratilir */

CREATE TABLE #TabloBilgileri ([Tablo Adi] varchar(128), [Satir Sayisi] varchar(11), [Toplam Alan] varchar(18), [Veri Alani] varchar(18), [Index Alani] varchar(18), [Kullanilmayan Alan] varchar(18))

 

GO

 

/* Her tablo için “exec sp_spaceused” komutu çaliþtirilir */

DECLARE @sayac int

DECLARE @tablosayisi int

DECLARE @sql varchar(MAX)

SET @tablosayisi = (SELECT MAX(TABLE_NO) FROM #Tablo)

SET @sayac = 0

WHILE @sayac < @tablosayisi

BEGIN

SET @sayac = @sayac + 1

SET @sql = ‘insert into #TabloBilgileri exec sp_spaceused "’ + (SELECT TABLE_SCHEMA FROM #Tablo WHERE @sayac = TABLE_NO) + ‘.[‘ + (SELECT TABLE_NAME FROM #Tablo WHERE @sayac = TABLE_NO) + ‘]"’

EXEC(@sql)

END

 

/* KB cinsinden gösterilen tablo boyutlari MB ve GB boyutlarinda gösterilir */

SELECT [Tablo Adi], [Satir Sayisi], (CASE

WHEN CONVERT(varchar(50),CONVERT(bigint,LEFT([Toplam Alan],LEN([Toplam Alan])-3))/1024) < 1024  THEN CONVERT(varchar(50),CONVERT(bigint,LEFT([Toplam Alan],LEN([Toplam Alan])-3))/1024) + ‘ MB’

ELSE CONVERT(varchar(50),CONVERT(decimal(10,2),CONVERT(decimal,LEFT([Toplam Alan],LEN([Toplam Alan])-3))/1024/1024)) + ‘ GB’ END) AS [Toplam Alan]

,(CASE

WHEN CONVERT(varchar(50),CONVERT(bigint,LEFT([Veri Alani],LEN([Veri Alani])-3))/1024) < 1024 THEN CONVERT(varchar(50),CONVERT(bigint,LEFT([Veri Alani],LEN([Veri Alani])-3))/1024) + ‘ MB’

ELSE CONVERT(varchar(50),CONVERT(decimal(10,2),CONVERT(decimal,LEFT([Veri Alani],LEN([Veri Alani])-3))/1024/1024)) + ‘ GB’ END) AS [Veri Alani]

,(CASE

WHEN CONVERT(varchar(50),CONVERT(bigint,LEFT([Index Alani],LEN([Index Alani])-3))/1024) < 1024  THEN CONVERT(varchar(50),CONVERT(bigint,LEFT([Index Alani],LEN([Index Alani])-3))/1024) + ‘ MB’

ELSE CONVERT(varchar(50),CONVERT(decimal(10,2),CONVERT(decimal,LEFT([Index Alani],LEN([Index Alani])-3))/1024/1024)) + ‘ GB’ END) AS [Index Alani]

FROM #TabloBilgileri tb

 

/* Geçici tablolar silinir */

 

DROP TABLE #Tablo

DROP TABLE #TabloBilgileri

  

 

6 thoughts on “Tablo Boyutlari ve Satir Sayilari Bulmak

  1. olumsuz  yorum yazan kisiler: bu kod cok isime yaradi, yazan arkadasin eline ve emegine saglik. siz ne diye bidi bidi yapiyorsunuz???

  2. tamm arkadasim bu kodu anladik ama onu ekranda gostermek iicn ne yapacagiz…onuda anlatirsan sewinirim

  3. Acaba bu kodu yazan arkadas yaw geyik olsun ben bu kadar kod yazayimda bir tablodaki satir sayisini bulayim diyemi yazdi sizce.

    Bir tablonun bilgileri nasil alinir mantigini anlatmak için mi yazmis.

    Simdi düsünme zamani…

  4. dediginiz mantikdala satir sayisini bulmak dogru sonucu getirmez. Anladigim kadariyla identity bir kolon kullanmakdan bahsediyorsunuz.

  5. sql biliyorum diye bu kadar uzun bir deyim yazmanin tek sebebi hava atmaktir. peki bir soru select tablo adi,satir sayisi demissin . veri tabaninda bir satirsayisi diye bir sutun eklersen ,bu sutuna her kayit için ne yazicaksin .diyelimki her kayit için sutun sayisini bir artirdin ve en sondaki kayitta toplam sutun sayisi yaziyor . bu satir sayisini almak marifet degilki sadece en sondaki satiri okucaksin 🙂

Guests için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir