Instance ve veritabanı
Bir sunucuya kurulan her SQL Server hizmetine instance denir; bir makinede birden çok instance olabilir. Her instance içinde birçok veritabanı bulunur.
Sistem veritabanları
| Veritabanı | Görevi |
|---|---|
master | Instance'ın kaydı: login'ler, veritabanı listesi, ayarlar. Kaybı ciddi sorundur, yedeklenmelidir. |
model | Yeni veritabanları için şablon. |
msdb | SQL Server Agent işleri, yedekleme geçmişi, zamanlamalar. |
tempdb | Geçici tablolar, sıralama ve karma işlemleri, satır sürümleri. Her yeniden başlatmada sıfırlanır; performans için çok önemlidir. |
Dosyalar
- .mdf: Birincil veri dosyası. .ndf: ek veri dosyaları.
- .ldf: İşlem günlüğü (transaction log). Her değişiklik önce buraya yazılır (write-ahead logging); çökme sonrası kurtarma buradan yapılır.
- Dosya grupları (filegroup): Veri dosyalarını mantıksal gruplar. Büyük tabloları farklı disklere dağıtmak için kullanılır.
Sayfa ve kapsam
Veri diskte 8 KB'lık sayfalar halinde saklanır; 8 ardışık sayfa bir kapsamdır (extent, 64 KB). Bir satır (LOB hariç) bir sayfaya sığmalıdır. Sorgu performansındaki “mantıksal okuma” bu sayfaların sayısıdır.
Bellek: buffer pool
Okunan sayfalar bellekteki buffer pool'da tutulur. Değiştirilen (kirli) sayfalar hemen diske yazılmaz; checkpoint süreci periyodik olarak yazar. Günlük ise her COMMIT'te diske yazılır; dayanıklılığı (ACID'deki D) sağlayan budur.
Bilgi alma sorguları
SELECT name, recovery_model_desc, state_desc FROM sys.databases; SELECT name, type_desc, physical_name, size * 8 / 1024 AS boyut_mb FROM sys.database_files; SELECT @@VERSION;
shared_buffers vardır. Oracle'da instance ile veritabanı ayrı kavramlardır; redo log, tablespace ve SGA karşılık gelir.