Sınavın konu alanları
Microsoft'un çalışma rehberine göre DP-300 kabaca şu alanlardan oluşur: veri platformu kaynaklarını planlama ve uygulama, güvenli ortam uygulama, veritabanı performansını izleme/yapılandırma/optimize etme, otomasyon ve yüksek erişilebilirlik ile felaket kurtarma. Oranlar dönem dönem güncellenir; resmi sayfayı kontrol et.
Güvenlik
-- Entra ID (Azure AD) kullanıcısını veritabanına ekle (contained user) CREATE USER [ayse@sirket.com] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [ayse@sirket.com]; -- Dinamik veri maskeleme ALTER TABLE dbo.customers ALTER COLUMN email ADD MASKED WITH (FUNCTION = 'email()'); -- Satır düzeyinde güvenlik: kullanıcı yalnızca kendi bölgesini görür CREATE FUNCTION sec.fn_bolge(@bolge NVARCHAR(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS izin WHERE @bolge = CAST(SESSION_CONTEXT(N'bolge') AS NVARCHAR(50)); CREATE SECURITY POLICY sec.bolge_filtresi ADD FILTER PREDICATE sec.fn_bolge(city) ON dbo.customers WITH (STATE = ON);
| Özellik | Korur |
|---|---|
| TDE | Diskteki veri (varsayılan açık) |
| Always Encrypted | Hassas sütunlar; sunucu bile düz metni görmez |
| Dinamik veri maskeleme | Yetkisiz kullanıcının gördüğü değer (veri değişmez) |
| RLS | Hangi satırların görüleceği |
| Denetim (Auditing), Defender for SQL | Kim ne yaptı, şüpheli etkinlik ve zafiyet değerlendirmesi |
| Veri keşfi ve sınıflandırma | Hassas sütunların etiketlenmesi |
İzleme ve performans
-- En çok CPU kullanan sorgular (Query Store)
SELECT TOP (10) q.query_id, t.query_sql_text,
SUM(rs.count_executions) AS calisma,
SUM(rs.avg_cpu_time * rs.count_executions) / 1000 AS toplam_cpu_ms
FROM sys.query_store_query q
JOIN sys.query_store_query_text t ON t.query_text_id = q.query_text_id
JOIN sys.query_store_plan p ON p.query_id = q.query_id
JOIN sys.query_store_runtime_stats rs ON rs.plan_id = p.plan_id
GROUP BY q.query_id, t.query_sql_text
ORDER BY toplam_cpu_ms DESC;
-- Kaynak kullanımı (Azure SQL Database)
SELECT TOP (20) end_time, avg_cpu_percent, avg_data_io_percent, avg_log_write_percent
FROM sys.dm_db_resource_stats ORDER BY end_time DESC;
-- Bekleme türleri
SELECT TOP (10) wait_type, wait_time_ms FROM sys.dm_db_wait_stats ORDER BY wait_time_ms DESC;
-- Otomatik ayar
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON, CREATE_INDEX = ON);
- Query Store: Planları ve çalışma istatistiklerini saklar; plan zorlama (force plan) ile kötüleşen sorguyu eski plana döndürür.
- Intelligent Query Processing: uyarlanabilir join, bellek geri bildirimi, parametreye duyarlı plan (PSP) gibi otomatik iyileştirmeler; uyumluluk düzeyine bağlıdır.
- İndeks bakımı: parçalanma (
sys.dm_db_index_physical_stats), istatistik güncelleme. - Azure Monitor, Log Analytics, Database Watcher ve uyarılar.
Otomasyon
| Ortam | Zamanlanmış görev |
|---|---|
| SQL Server / Managed Instance / VM | SQL Server Agent işleri, bakım planları |
| Azure SQL Database | Elastic jobs, Azure Automation, Logic Apps, Azure Functions |
| Dağıtım | ARM/Bicep şablonları, PowerShell, Azure CLI, DACPAC ile şema dağıtımı |
HA/DR
Geo-replication ve failover groups (Azure SQL), Always On availability groups ve failover cluster instance (VM), log shipping, otomatik yedeklemeler, belirli bir ana geri yükleme (PITR) ve uzun süreli saklama (LTR). RPO (ne kadar veri kaybı göze alınır) ve RTO (ne kadar sürede geri dönülür) hedeflerine göre seçilir.