SQL Server Veritabanlarınızın Boyutunu Anlamak
Veritabanı yönetimi dünyasında sıkça karşılaşılan bir soru şudur: SQL Server’daki tüm veritabanlarının toplam boyutunu nasıl belirleyebilirim? Bu, alanı ve kaynakları etkili bir şekilde yönetmesi gereken veritabanı yöneticileri için önemli bir görevdir. Veritabanı büyümesini izlemek, kapasite planlamak veya depolama kullanımını takip etmek isterken, SQL Server veritabanlarınızın boyutunu bilmek hayati öneme sahiptir.
SQL Server, veritabanlarınızın toplam boyutunu ve kullanımını göstermek için basit bir yol sunmaktadır. Aşağıda, SQL Server veritabanlarınızın kapladığı alan hakkında tamamen bir içgörü elde etmek için uygulayabileceğiniz bir saklı yordam ile sizi yönlendireceğiz; bu, SQL Server 2008’e kadar olan sürümler için geçerlidir.
Çözüm: Saklı Yordam
Veritabanı boyutlarını bulmak için, kullanılan toplam alanı, mevcut alanı özetleyen ve her veritabanının veri ve günlük dosyaları hakkında temel bilgiler sağlayan bir saklı yordam oluşturacağız. Bunu adım adım inceleyelim.
Adım 1: Saklı Yordamın Oluşturulması
sp_SDS
adında bir saklı yordam oluşturmak için aşağıda verilen adımları takip edebilirsiniz:
USE master;
GO
IF OBJECT_ID('dbo.sp_SDS', 'P') IS NOT NULL
DROP PROCEDURE dbo.sp_SDS;
GO
CREATE PROCEDURE dbo.sp_SDS
@TargetDatabase sysname = NULL, -- NULL: tüm veritabanları
@Level varchar(10) = 'Database', -- Seçenekler: "Veritabanı", "Dosya"
@UpdateUsage bit = 0, -- Varsayılan güncelleme yok
@Unit char(2) = 'MB' -- Birimler: Megabayt, Kilobayt, Gigabayt
AS
Adım 2: Başlangıç Ayarları
Saklı yordam içinde, başlangıç kontrolleri yapar ve veritabanı bilgilerini tutmak için geçici tablolar oluştururuz:
- Hedef Veritabanasını Kontrol Et: Belirli bir veritabanası isteniyorsa, onun varlığını kontrol ederiz.
- Geçici Tablo Oluşturma: Toplam boyut, kullanılan alan ve boş alan gibi veritabanı istatistiklerini depolamak için tablolar oluştururuz.
Adım 3: Veritabanı Bilgilerini Toplama
Daha sonra, SQL Server’daki veritabanları hakkında ayrıntılar toplarız. Toplayacağımız ana unsurlar şunlardır:
- Veritabanı Adı
- Tür (Veri veya Günlük)
- Mantıksal Adı
- Toplam Boyut
- Kullanılan Boyut ve Boş Alan
Bu verileri nasıl alıyoruz:
SELECT
@String = 'INSERT INTO dbo.##Tbl_CombinedInfo (DatabaseName, type, LogicalName, PhysicalName, T) '
+ 'SELECT DB_NAME(), {...} FROM sysfiles WHERE DB_NAME() = @DatabaseName';
EXEC (@String);
Adım 4: Boyutları Hesaplama
Gerekli verileri topladıktan sonra, kullanılan ve boş alan yüzdelerini belirlemek için hesaplamalar yaparız:
- Her dosyanın uzunluklarına göre kullanılan alanı güncelleyin.
- Veri ve günlük dosyaları için kullanılan ve boş alan yüzdelerini hesaplayın.
Adım 5: Sonuçları Gösterme
Son olarak, hesaplanan bilgileri kullanıcıya sunarız:
SELECT DatabaseName AS 'Veritabanı',
type AS 'Tür',
T AS 'Toplam',
U AS 'Kullanılan',
[U(%)] AS 'Kullanılan (%)',
F AS 'Boş',
[F(%)] AS 'Boş (%)',
PhysicalName
FROM dbo.##Tbl_CombinedInfo
WHERE DatabaseName LIKE ISNULL(@TargetDatabase, '%')
ORDER BY DatabaseName ASC, type ASC;
Çalıştırma Örneği
Bu saklı yordamı çalıştırmak için, onu aşağıdaki gibi çağırabilirsiniz:
EXEC dbo.sp_SDS;
Belirli bir veritabanını hedeflemek veya çıktı birimleri için ayarlamalar yapmak isterseniz:
EXEC dbo.sp_SDS 'veritabani_adiniz', 'Veritabanı', 1, 'GB';
Sonuç
SQL Server veritabanlarınızın boyutunu bilmek, yalnızca etkili kapasite planlamasında yardımcı olmakla kalmaz, aynı zamanda genel veritabanı yönetim stratejinizi de geliştirmeye yardımcı olur. Verilen saklı yordamı uygulayarak, SQL Server veritabanlarınız hakkında içgörüler toplamakta verimli bir şekilde ilerleyebilirsiniz ve bu da optimal performans ve kaynak tahsisi sağlar.
Kendi deneyimlerinizi veya script üzerinde yaptığınız değişiklikleri paylaşmaktan çekinmeyin!