Пространство, которое используется таблицей, полностью не освобождается после выполнения инструкции DELETE для удаления данных из таблицы в SQL Server

Переводы статьи Переводы статьи
Код статьи: 913399 - Vizualiza?i produsele pentru care se aplic? acest articol.
Ошибка #: 219514 (SQL Server 8.0)
Развернуть все | Свернуть все

Проблема

После инструкции DELETE в Microsoft SQL Server используется для удаления данных из таблицы, можно заметить, что пространство, которое использует таблицы не удаляется полностью. Попробуйте вставить данные в базе данных, появляется следующее сообщение об ошибке:
Не удалось выделить место для объекта "TableName"в базе данных"DatabaseName", так как файловая группа"PRIMARY"заполнен.
Примечание.TableNameпредставляет имя таблицы.DatabaseNameпредставляет имя базы данных, содержащей таблицу.

Причина

Данная проблема возникает только в SQL Server освобождает все страницы, таблицы кучи при следующих условиях:
  • Происходит удаление в этой таблице.
  • Время удержания блокировки уровня таблицы.
Примечание.Таблица кучи — это любой таблицы, не связанные с кластеризованным индексом.

Если страницы не освобождаются, другие объекты в базе данных не может использовать страницы.

Тем не менее если уровень изоляции, основанном на управлении версиями строк в базе данных SQL Server 2005, страницы не может быть освобождена даже в том случае, если время удержания блокировки уровня таблицы. Для получения дополнительных сведений об уровнях изоляции, основанных на управлении версиями строк в разделе "Уровни изоляции, основанных на управлении версиями строк с помощью" в документации по SQL Server 2005.

Временное решение

Для решения этой проблемы воспользуйтесь одним из описанных ниже способов.:
  • Включите подсказка TABLOCK в инструкции DELETE, если уровень изоляции на основе версий строк. Например оператор, похожее на следующее:
    DELETE FROM <TableName> WITH (TABLOCK)
    Примечание.<tablename></tablename>представляет имя таблицы.
  • Если вы хотите удалить все записи в таблице с помощью инструкции TRUNCATE TABLE. For example, use a statement that is similar to the following:
    TRUNCATE TABLE <TableName>
  • Create a clustered index on a column of the table. For more information about how to create a clustered index on a table, see the "Creating a Clustered Index" topic in SQL Server Books Online.

Статус

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

Свойства

Код статьи: 913399 - Последний отзыв: 27 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 7.0 Standard Edition
Ключевые слова: 
kbexpertiseadvanced kbprb kbmt KB913399 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:913399

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

 

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