Sahip olduğunuz seçenekleri tartışan bir bildiri olan Çok Kiracılı Veri Mimarisini , artılarınızı ve eksilerinizi okumanızı öneririm . Özetlemek gerekirse, üç seçenek sunar:
- ayrı DB'ler
- ayrı şemalar
- paylaşılan şema
Artık, en iyi ayrımı (kiracılar arasında yalıtım) sunan, ancak yönetimi en zor olan ayrı DB'ler aşamasındasınız. Yüzlerce kiracıya büyüdükçe, 100'lerce DB'yi yönetme lojistiğinin önemsiz olmadığını fark edeceksiniz. Yedeklemeyi geri yüklemeyi (yedeklenen dosyaların, işlerin, programların vb. Konumu) düşünün. Yüzlerce veri tabanı arasında dosya dağıtımını, kullanılan disk alanını ve veritabanı büyümesini nasıl izleyeceğinizi ve yöneteceğinizi düşünün. 1000 Kiracı ile yakın gelecekte Yüksek Kullanılabilirlik / Felaket-Kurtarılabilirlik senaryonuz ne olacak? 1000 yansıtılmış DB, 1000 log sevkiyat oturumu? 6 ay içerisinde geliştirici ekibiniz size gelir ve "Bu harika özelliği ürünümüze nasıl vereceğimi biliyorum, İşlemsel Çoğaltma'yı kullanacağız!" Deyince ne düşünün? "Tabii, 500 yayıncı kurmama izin ver,“! Yüzlerce DB'yi yönetmek imkansız değildir, ancak planlıyorsanız, PowerShell becerilerinizi daha iyi parlatır ve şu anda UI yönetim araçlarını kullanmayı bırakabilirsiniz .
Ek olarak, birden fazla (yüzlerce) DB'nin performans ve maliyet üzerinde ölçülebilir bir etkisi olduğunu göz önünde bulundurmanız gerekir:
- fiziksel disk alanı daha az verimli kullanılır (her veritabanında bir miktar boş oda olması gerekir , bu boş odada DB sayısı ile çarpılırsınız)
- Yoğun yazma işleri için özel bir günlük diski oluşturabilmeniz mümkün değildir, tüm bu LDF'leri bir (veya daha fazla) SSD deposuna taşımak zorunda kalacaksınız
- log yazmaları, çoğu bireysel log bloğu kaydına karşı bir araya dağıldıkları için (tek kullanımlık log blokları kullanacaksınız) yayılan komisyonlarda daha az verimli olacaktır. Ne hakkında konuştuğumu anlamak için , bkz. LSN Nedir: Günlük Sıra Numarası .
Ayrılmış DB'ler, izolasyondan dolayı bazı avantajlarla birlikte gelir, temel avantajı bağımsız yedekleme / geri yüklemedir.
Sizinkine benzer senaryolar, SQL Azure veritabanları için mükemmel bir aday . Disk alanı yönetimi yok, HA / DR sağlamaya gerek yok, yüzlerce / binlerce DB vs. büyüyor.