Derleme ikili veritabanı veritabanında bir blob olarak saklanır, böylece veritabanı nereye giderse gidin taşınır. CLR yalnızca örnekte etkinleştirilir - bunun için veritabanına özgü ayarlar yoktur.
Her halükarda, bunu neden yapmaya çalışıyorsunuz?
(Tartışmacı olmaya çalışmıyorum; Sadece ilgili nedenleri duymak istiyorum, çünkü belki de sorun ihtiyaçlarınızı karşılayan farklı bir şekilde çözülebilir.)
Derlemeyi paylaşılan bir veritabanına koymak dışında bunu kolayca yapmanın bir yolu yoktur.
Bununla birlikte, merkezileştirmek için çok zorlayıcı nedenleri olan özel bir durum olmadığı sürece, veritabanı merkezli mimariyi kucaklamanın avantajlı olacağını düşünüyorum. Bunun nedeni, derlemeyi (veya bu konuyla ilgili herhangi bir şeyi) veritabanının dışına koymanın ortamınızda bir bağımlılık yaratmasıdır. Bu, Microsoft'un SQL Server 2012'den başlayarak İçerdiği Veritabanları ile geliştirdiği tam tersi yaklaşımdır.
Çoğaltma veya kümeleme gibi özellikleri kullanmaya başladığınızda, bu bağımlılık, konuşlandırmaya büyük olasılıkla büyük miktarda karmaşıklık katmanın yanı sıra sorun giderme ve yük devretme yordamlarına da katkıda bulunabilir.
Bu mimari, sisteme aşina olmayan kişiler için çok daha az açıktır (yani, daha az kendi kendine keşfedilebilir ve daha az kendi kendine belgeleme).
Farklı veritabanlarında veya varyasyon içeren herhangi bir şeyde farklı güvenlik gerektiren bir durum varsa, incinme dünyasındasınız demektir.
Bu veritabanları müşterilere dağıtılırsa (görünmeyecek gibi görünür, ancak bunu eksiksizlik için söyleyeceğim), dağıtım prosedürüne, bakım ve sorun gidermeye karmaşıklık katar.
Tüm veritabanları bu kodu paylaşacağından, herhangi bir hata tanıtıldıysa (veya düzeltildiyse), bu durum veritabanlarına dayanan tüm uygulamaları bozabilir . Kapsamlı birim testi mutlak bir zorunluluktur.
Aynı işlevselliğe ihtiyaç duyan birkaç veritabanınız varsa, egzersizin amacı olduğunu düşündüğüm çoğaltma miktarını azaltmanın başka yolları da vardır. Oldukça karmaşık bir CLR meclisi bile veritabanındaki verilere kıyasla (neredeyse her zaman) çok fazla fiziksel depolama alanı kaplamaz, bu yüzden tam anlamıyla buna ihtiyaç duyan binlerce küçük veritabanınız yoksa bunu geçerli bir argüman olarak görmüyorum montaj.
Yapabileceğiniz şey, kaynak çoğaltmayı azaltmak için bu veritabanları için dağıtım yordamının diğer bölümlerini değiştirmek. Örneğin, derlemeyi kaynak denetiminde CLR kodunun ortak konumundan oluşturun ve dağıtın. Veya, aynı derleme veritabanlarına dağıtan bir komut dosyası oluşturun. İşlerin bu bölümünü mümkün olduğunca otomatikleştirin ve önemli olmayacak.
Önerdiğim şeyin bir tutarsızlık olduğuna katılıyorum, çünkü yine de bir miktar kopyalama olacak, ancak bu, öngörülen standarda uymayan bir mimarinin uygulanmasıyla ilgili olumsuzluklarla dengelenmek zorunda. Ortamınız için neyin doğru olduğuna yalnızca siz karar verebilirsiniz.