KB2295878 — ИСПРАВЛЕНО: бизнес-страницы, выделенные в неудачной инструкции INSERT, могут не быть освобождены после применения SQL Server 2005 SP3, SQL Server 2005 SP4, SQL Server 2008 SP1 или SQL Server 2008 R2

Применяется к
Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Express Edition Microsoft SQL Server 2005 Standard Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2005 с пакетом обновления 3 (SP3), SQL Server 2005 с пакетом обновления 4 (SP4) и Microsoft SQL Server 2008 с пакетом обновления 1 (SP1) или SQL Server 2008 R2 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2005 с пакетом обновления 3 (SP3), SQL Server 2005 с пакетом обновления 4 (SP4), SQL Server 2008 с пакетом обновления 1 (SP1) или SQL Server 2008 R2.

Проблема

Рассмотрим следующий сценарий.

  • Вы создаете таблицу в SQL Server 2005 с пакетом обновления 3 (SP3), SQL Server 2005 с пакетом обновления 4 (SP4), в SQL Server 2008 с пакетом обновления 1 (SP1) или в SQL Server 2008 R2.
  • Вы пытаетесь вставить несколько строк в таблицу. Эти строки содержат бизнес-данные.
  • Возникает ошибка вставки, и бизнес-данные не вставляются. Например, таблица имеет ограничение первичного ключа, и вставка нарушает первичный ключ.

В этом случае размер таблицы все равно увеличивается.

Причина

Эта проблема возникает из-за того, что SQL Server не освобождает бизнес-страницы в системных транзакциях после получения сообщения об ошибке. Поэтому размер таблицы увеличивается.

Примечание. LOB-страницы выделяются в системных транзакциях из-за изменения структуры в SQL Server 2005 SP3, SQL Server 2005 SP4 и SQL Server 2008 SP1.

Решение

Сведения о накопительном пакете обновления

SQL Server 2005 с пакетом обновления 4 (SP4)

Исправление для этой проблемы впервые было выпущено в накопительном пакете обновления 1 для SQL Server 2005 с пакетом обновления 4 (SP4). Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2464079 Накопительный пакет обновления 1 для SQL Server 2005 с пакетом обновления 4 (SP4) Так как сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, включенные в предыдущий выпуск исправления SQL Server 2005 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2485757 Сборки SQL Server 2005 г., выпущенные после выпуска SQL Server 2005 с пакетом обновления 4 (SP4) для Microsoft SQL Server 2005 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2005 с пакетом обновления 4 (SP4) для установки SQL Server 2005 с пакетом обновления 4. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

SQL Server 2005 с пакетом обновления 3 (SP3)

Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 12. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2005 с пакетом обновления 3 (SP3), откройте статью со следующим номером в базе знаний Майкрософт:

2345449 Накопительный пакет обновления 12 для SQL Server 2005 с пакетом обновления 3 (SP3) Примечание Так как сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправления для системы безопасности, включенные в предыдущий выпуск исправления SQL Server 2005 с пакетом обновления 3 (SP3). Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

960598 Сборки SQL Server 2005 г., выпущенные после выпуска SQL Server 2005 с пакетом обновления 3 (SP3)

SQL Server 2008 с пакетом обновления 1 (SP1)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 11 для SQL Server 2008 с пакетом обновления 1. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2413738 Накопительный пакет обновления 11 для SQL Server 2008 с пакетом обновления 1Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

970365 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1) Исправления Microsoft SQL Server 2008 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) для установки SQL Server 2008 с пакетом обновления 1. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

SQL Server 2008 R2

Исправление этой проблемы впервые выпущено в накопительном пакете обновления 5. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, откройте статью со следующим номером в базе знаний Майкрософт:

Накопительный пакет обновления 2438347 5 для SQL Server 2008 R2 Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

SQL Server 2008 с пакетом обновления 2 (SP2)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 2 для SQL Server 2008 с пакетом обновления 2. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2467239 Накопительный пакет обновления 2 для SQL Server 2008 с пакетом обновления 2 (SP2) Так как сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2402659 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2) Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления для SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 2 (SP2) для установки SQL Server 2008 с пакетом обновления 2. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».