DBCC CLONEDATABASE, SQL Server’da bir veritabanının sadece şema ve istatistiklerini klonlayan bir komuttur. Bu, özellikle sorguların performans sorunlarını gidermek veya test amaçlı kullanmak için geliştirilmiş bir özelliktir.
DBCC CLONEDATABASE, bir veritabanının kopyasını oluştururken yalnızca şu bileşenleri içerir:
Veritabanı şeması: Tablolar, view, stored procedure, fonksiyonlar, indeksler gibi nesneler.
İstatistikler: Sorgu performansını etkileyen indeks ve kolon istatistikleri.
Bu komut, asıl veriler olmadan, sadece şema ve istatistiklere odaklanır. Bu sayede test ve performans analizi gibi işlemleri asıl veritabanı üzerinde çalışmadan yapabilirsiniz. Hiç veri olmamasına rağmen production veritabanı ile aynı execution plan’ı üretiyor.
Komutun temel sözdizimi şu şekildedir:
DBCC CLONEDATABASE ('OrijinalVeritabaniAdı', 'KlonVeritabaniAdı');
OrijinalVeritabaniAdı: Kopyalanacak veritabanının adı.
KlonVeritabaniAdı: Oluşturulacak klon veritabanının adı.
DBCC CLONEDATABASE ('AdventureWorks2014', 'KlonVeritabaniAdı');
Bu komut, AdventureWorks2014 adlı veritabanının şemasını ve istatistiklerini klonlayarak KlonVeritabaniAdı adında bir veritabanı oluşturur.


Veritabanı içerisinde veri olmadığını söylemiştik. Yukarıdaki resimde görüldüğü gibi, şimdi aynı sorgumuzu çalıştırarak execution plan yapılanmasını görelim.

Sorgumuzu çalıştırdığımızda farklı execution plan yapılarının olduğunu görmekteyiz. Sanki içerisinde veri varmış gibi çalışmaktadır.

Not: Bu komutu çalıştırmak için kullandığınız sürümün en güncel halini kullanmalısınız.
Özellikleri ve Sınırlamaları
1. Veriler Kopyalanmaz: Klon veritabanında herhangi bir veri bulunmaz. Bu, gizlilik veya veri güvenliği açısından büyük bir avantajdır.
2. Salt Okunur Mod: Klonlanan veritabanı, varsayılan olarak salt okunur modda oluşturulur. Bunu değiştirmek için şu komutu kullanabilirsiniz:
ALTER DATABASE [KlonVeritabaniAdı] SET READ_WRITE;
3. Hedef Amaçlar:
Performans sorunlarını test etmek. İndekslerin veya sorgu planlarının analizini yapmak. Uygulama geliştirme veya test ortamları oluşturmak.
4. Sistem Nesneleri Klonlanmaz: Sistem veritabanı bileşenleri, örneğin master veya msdb, klonlanmaz.
5. Sürüm Uyumluluğu: SQL Server 2014 SP2 ve üzeri sürümlerde desteklenir.
Klon Veritabanını Kontrol Etme
Klon veritabanının doğru oluşturulduğunu ve salt okunur olduğunu doğrulamak için şu komutu çalıştırabilirsiniz:
SELECT DATABASEPROPERTYEX('KlonVeritabaniAdı', 'Updateability') AS Updateability,
DATABASEPROPERTYEX('KlonVeritabaniAdı', 'Status') AS Status;

DBCC CLONEDATABASE, SQL Server’da performans analizlerini güvenli ve etkili bir şekilde yapmanıza olanak sağlar. Asıl veritabanına müdahale etmeden veya büyük veri taşımaları yapmadan işlem yapmak için ideal bir araçtır. Başka bir makalede görüşmek dileğiyle..
“Lokmân, “Sevgili oğlum” (dedi), “Yaptığın iş bir hardal tanesi ağırlığında bile olsa, bir kayanın içinde saklansa veya göklerde yahut yerin dibinde bulunsa yine de Allah onu açığa çıkarır. Kuşkusuz Allah her şeyi bütün gizlilikleriyle bilir, O her şeyden haberdardır.”Lokman-16