2016-03-22 14 views

cevap

1

Meclisleri nedeniyle günlük belirtilen kesin nedene için yüksüz edilmektedir. Bunu önlemek için yapabileceğiniz belirli bir şey yoktur (yani, bu davranışı devre dışı bırakma seçeneği yok). Yapabileceğiniz en fazla şey, daha fazla bellek ekleyerek ve/veya sorgularınızın ve/veya SQLCLR nesnelerinizin bellek tüketimini azaltarak meydana gelme olasılığını azaltmaktır.

Yukarıdaki öneriler, sorgularınızda veya .NET kodunda şu anda etkisiz olan herhangi bir şey olmadığı anlamına gelmez, sadece daha fazla belleğe ihtiyacınız varsa, daha fazlasını eklemeniz veya daha azını kullanmanız gerekir. Ve şu anda mümkün olduğunca az kullanıyorsanız, daha fazla bellek eklemeniz gerekir. .NET kodunuzu görmeden, geliştirilebilecek herhangi bir alan olup olmadığını belirlemek mümkün değildir. Ancak, sorunun SQLCLR kodunuzun dışında olması daha olasıdır. Ne kadar hafızanız olduğunu ve nerede kullanıldığını belirlemelisiniz. DBA.StackExchange bu Soru bakarak deneyin:

SQL Server 2012 memory consumption outside the buffer pool

Ayrıca SQL Server UNSAFE olarak Kurul işaretleme değildir. Meclis setine nasıl sahip olduğunuz budur. Gerçekten sadece dosya sistemi erişim işlemleri yapıyorsa, Meclisi EXTERNAL_ACCESS yerine değiştirmeyi deneyebilirsiniz.

+0

Sadece CLR'ler için bellek tüketimini nasıl azaltır veya eklersiniz? –

+0

@ValK Cevabımı güncelledim, ancak kodunuza bağlı. Kodun iyi olabilirdi, sadece bakmak için bir alan olduğunu söylüyordum. –

+0

Teşekkürler. Bence CLR kodu iyi. CLR'lere mevcut tüm sql belleklerden daha fazla bellek ayırmayı denemek istiyorum ama nasıl yapacağını bilmiyorum. Gönderinizdeki bağlantılardan bazılarını okuyarak CLR belleğinin maksimum sunucu belleğinin bir parçası olduğunu öğrendim, doğru mu? –

İlgili konular