Сборки в SQL Server периодически выгружаются и снова загружаются
1 ответ
Сборки выгружаются по точной причине, указанной в журнале: нехватка памяти. Нет ничего конкретного, что вы можете сделать, чтобы предотвратить это (т.е. нет возможности отключить это поведение). Максимум, что вы можете сделать, это уменьшить вероятность того, что это произойдет, добавив больше памяти и / или уменьшив потребление памяти вашими запросами и / или объектами SQLCLR.
Приведенные выше предложения не означают, что в ваших запросах или в коде.NET в настоящее время есть что-то неэффективное, просто если вам нужно больше памяти, вам нужно либо добавить больше, либо использовать ее меньше. И если вы в настоящее время используете как можно меньше, вам нужно добавить больше памяти.
Не видя ваш.NET-код, невозможно определить, есть ли области, которые можно улучшить. Однако более вероятно, что проблема не в вашем коде SQLCLR. Вам нужно определить, сколько у вас памяти и где она используется. Попробуйте просмотреть этот вопрос на DBA.StackExchange:
Потребление памяти SQL Server 2012 вне пула буферов
Кроме того, SQL Server не помечает сборку как UNSAFE
, Это просто, как у вас есть набор сборки. Вы можете попробовать изменить сборку, чтобы вместо EXTERNAL_ACCESS
если он действительно только делает операции доступа к файловой системе.