Различные ошибки памяти регистрируются в журнале ошибок SQL Server при использовании объектов SQL CLR

Переводы статьи Переводы статьи
Закрыть Закрыть
Код статьи: 969962 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Источник: Поддержка Майкрософт

БЫСТРАЯ ПУБЛИКАЦИЯ

БЫСТРАЯ ПУБЛИКАЦИЯ ДАННЫХ СОДЕРЖАТСЯ СВЕДЕНИЯ НЕПОСРЕДСТВЕННО В СЛУЖБУ ТЕХНИЧЕСКОЙ ПОДДЕРЖКИ МАЙКРОСОФТ ОРГАНИЗАЦИИ. СВЕДЕНИЯ, СОДЕРЖАЩИЕСЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ СОЗДАЕТСЯ В ОТВЕТ НА НОВЫХ ИЛИ УНИКАЛЬНЫЙ РАЗДЕЛЫ, ИЛИ ПРЕДНАЗНАЧЕНА ДОПОЛНЕНИЯ ДРУГИХ ЗНАНИЙ СВЕДЕНИЯ.

Симптом



С помощью SQL CLR хранимые процедуры, пользовательские функции, определенные пользователем типы данных или статистические функции определенные пользователем, можно заметить многие одно или несколько из следующих сообщений об ошибке, зарегистрировано в журнале ошибок SQL server при запуске 32-разрядного экземпляра SQL Server 2005 или 2008.

Сообщение об ошибке 1

2 AppDomain (xxx) помечен для выгрузки вследствие требований к памяти.

Сообщение об ошибке 2

Trio.dbo[runtime].xx домен приложения был выгружен политикой расширения для обеспечения согласованности приложения. При попытке доступа к критически важного ресурса обнаружена нехватка памяти.

Сообщение об ошибке 3

Не удалось инициализировать v2.0.50727 Common Language Runtime (CLR), чтобы из-за нехватки памяти.

Сообщение об ошибке 4

Ошибка: 6532, уровень серьезности: 16, состояние: 49. .NET Framework прервано политикой расширения из-за недостаточно свободной памяти.

Кроме того может появиться выше сообщений об ошибках с возможностями SQL Server 2008, которые используют SQL CLR внутренне, подобно функции DMF (декларативная инфраструктура управления) и пространственных типов данных.

Дополнительные сведения


Сообщение об ошибке 1 может просто быть информационное сообщение, указывающее, что SQL CLR отвечает на требование памяти в системе. Если это не постоянно отображаемое сообщение, не влияя на выполнение объектов SQL CLR, скорее всего можно игнорировать сообщение.

Следующие шаги могут помочь устранить или смягчения этой проблемы:
  • Убедитесь, что ваш.NET Framework 2.0 в курсе последних исправлений. Перед обновлением платформы, если в объекте SQL CLR используется любой сборки, отличные от описанных в статье 922672 базы знаний Майкрософт, прочитайте следующую статью во избежание проблем с объектов SQL CLR после обновления.

    При выполнить процедуру среды CLR или использовать сборку в SQL Server 2005 949080 сообщение об ошибке: «сборки в хранилище главного узла имеет другую подпись не сборку в глобальный кэш СБОРОК. (Исключение из HRESULT: 0x80131050)» http://support.Microsoft.com/kb/949080
  • Как и в случае с любой 32-разрядным приложением SQL server 32-разрядного экземпляра виртуальной памяти ограничен 4 ГБ. Широко использовать SQL CLR с экземпляром SQL Server 32 бит и опыт один или несколько выше ошибок корпорация Майкрософт рекомендует выполнить миграцию на 64-разрядные SQL Server. Это позволит SQL CLR для доступа к виртуальной памяти и может предотвратить выше ошибки в вашей среде.
  • При разработке пользовательских приложений SQL CLR, тщательно использование памяти SQL CLR. При разработке приложений SQL CLR, воспользуйтесь следующими рекомендациями.
    • Отказ от кэширования большой объем данных с помощью объектов, таких как объекты DataTable. Если необходимо получить доступ к данным SQL Server, используйте TSQL для извлечения данных, необходимых в приложении.
    • Не используйте статические переменные в коде для хранения больших объектов.
    • Создание объектов позднее и освободить их, как можно раньше.


Следовали принципам выше, но продолжает появляться ошибки, описанной в разделе «Проблема» и не удается выполнить миграцию сразу к 64-разрядные, разрывая, попробуйте, предоставляя больше памяти для SQL CLR, увеличив «memtoleave» или «Non буферного пула» 384 МБ. Это можно сделать, добавив коммутатор - g384 для параметров запуска в разделе Эта вкладка свойств экземпляра SQL server (http://MSDN.Microsoft.com/en-us/library/ms345416 (SQL.90) .aspx) в диспетчере конфигурации SQL Server.

Пожалуйста, помните, следует не увеличить значение MemToLeave произвольно. Слишком большое значение может иметь неблагоприятное воздействие на использование памяти буфера пула, который может привести к проблемам производительности с экземпляром SQL server. Кроме того вы можете продолжать возникают ошибки нехватки памяти SQL CLR, описанные в статье, даже после корректировки памяти не буферного пула, в этом случае дальнейшего устранения неполадок потребуется для выявления причины.

Сведения о SQL Server 2008 R2 анализатора соответствия Рекомендациям

Анализатор SQL Server 2008 R2 соответствия рекомендациям (SQL Server 2008 R2 BPA) предоставляет правила для определения ситуаций, в которых экземпляр SQL Server настроен на использование функций SQL CLR, но не хватает памяти, выделенной с помощью -g параметр запуска. Анализатор SQL Server 2008 R2 поддерживает SQL Server 2008 и SQL Server 2008 R2.

Если запустить средство анализатора соответствия Рекомендациям и возникает предупреждение «СУБД - SQLCLR должен конфигурации дополнительной памяти» необходимо ознакомиться с информацией в данной статье и настройка -g параметр запуска для данного экземпляра SQL Server, чтобы избежать неполадок памяти.

Ссылки

Свернуть эту таблицуРазвернуть эту таблицу
Правила программыНазвание правилаИдентификатор правила
Правило SQL Server 2008 R2 анализатора соответствия РекомендациямSQLCLR требуется дополнительная память конфигурацииRID3802



Ссылки

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

MICROSOFT И/ИЛИ ЕЕ ПОСТАВЩИКИ НЕ ДЕЛАТЬ ПРЕДСТАВЛЕНИЯ ИЛИ ГАРАНТИЙ О ПРИГОДНОСТИ, НАДЕЖНОСТЬ И ТОЧНОСТЬ ИНФОРМАЦИИ СОДЕРЖАТСЯ В ДОКУМЕНТЫ И СВЯЗАННЫХ РИСУНКОВ ПУБЛИКАЦИИ НА ЭТОМ ВЕБ-САЙТЕ (ДАЛЕЕ "МАТЕРИАЛЫ") ДЛЯ ЛЮБЫХ ЦЕЛЕЙ. МАТЕРИАЛЫ МОГУТ СОДЕРЖАТЬ ТЕХНИЧЕСКИЕ НЕТОЧНОСТИ ИЛИ ОПЕЧАТОК И МОЖЕТ БЫТЬ ИЗМЕНЕН В ЛЮБОЕ ВРЕМЯ БЕЗ ПРЕДВАРИТЕЛЬНОГО УВЕДОМЛЕНИЯ.

В МАКСИМАЛЬНОЙ СТЕПЕНИ, ДОПУСКАЕМОЙ ПРИМЕНИМО ЗАКОНОДАТЕЛЬСТВОМ, КОРПОРАЦИЯ МАЙКРОСОФТ ИЛИ ЕЕ ПОСТАВЩИКИ DISCLAIM И ИСКЛЮЧИТЬ ВСЕ ПРЕДСТАВЛЕНИЯ ГАРАНТИЙ И УСЛОВИЙ ЛИ EXPRESS, КОСВЕННЫХ ИЛИ УСТАНОВЛЕННЫХ ЗАКОНОМ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЕТСЯ, ГАРАНТИЙ, УСЛОВИЙ ИЛИ ЗАГОЛОВКА, ОТЛИЧНЫХ ОТ КОНТРАФАКЦИИ, ИСПРАВИВ ОШИБКУ ИЛИ КАЧЕСТВА, ЛЮБЫЕ ГАРАНТИИ ТОВАРНОСТИ ИЛИ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, ОТНОСЯЩИЕСЯ К МАТЕРИАЛАМ.
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 969962 - Последний отзыв: 19 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2005 Compact Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Ключевые слова: 
kbrapidpub kbnomt kbmt KB969962 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:969962

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com