Як для стискання бази даних tempdb у SQL Server

Переклади статей Переклади статей
Номер статті: 307487 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

Підсумки

У цій статті розглядаються різні методи, які можна використовувати для стискання бази даних tempdb у Microsoft SQL Server. Перш ніж ви стискання бази даних tempdb за допомогою методів, які описано в цій статті, будь ласка Майте на увазі такі дії:
  • Розмір бази даних tempdb скинути до останнього настроєний розміру (тобто, розмір за промовчанням, або минулого розмір, який був встановлений за допомогою alter бази даних) після кожної перезавантаження. Таким чином, якщо у вас немає для сценарій виконання різних значень або отримувати негайні перепочинку, вам не потрібно сценарій виконання будь-яких процедур, які описані в цій статті. Можна почекати наступного перезапуску служби SQL Server для зменшення розміру. Великих розмірів бази даних tempdb не буде негативно впливати на продуктивність SQL Server.
  • В SQL Server 2005 і пізніших версій, стискання бази даних tempdb нічим не відрізняється, ніж скорочення базу даних користувача, за винятком того, що бази даних tempdb скидає його налаштувати розмір після кожної перезавантаження екземпляра SQL Server.
  • Це безпечно запустити стиснути в бази даних tempdb, хоча поточної бази даних tempdb діяльності. Однак можуть виникнути інших помилок, таких як блокування, глухі кути і так далі, які можуть перешкоджають скорочуватися . Тому для того, щоб переконатися, що стискання бази даних tempdb будуть успішними, ми рекомендуємо, що ви зробити це, поки сервер перебуває в одного користувача режимі, або коли ви перестали всі бази даних tempdb діяльності.

Бази даних tempdb інформації

Бази даних tempdb є тимчасової робочої області. SQL Server використовує бази даних tempdb виконання багатьох завдань. Серед цих завдань є:
  • онлайнове пул носіїв пул носіїв явно створений тимчасових таблиць
  • Робочі столи, які тримають проміжні результати, які створюються під Вільний час запит на змінення, обробки та сортування
  • Матеріалізувалася статичні курсори
  • онлайнове пул носіїв версії записів при використанні знімок ізоляції рівнів або Скоєно читання знімок ізоляції рівнів
SQL Server записує тільки достатньо інформації в бази даних tempdb журнал транзакцій відкотити транзакцію, але не для того, щоб повторити операції під Вільний час Відновити базу даних. Ця функція збільшує продуктивність Вставлення заяви в tempdb. Крім того, вам не доведеться увійти інформації, щоб повторити будь-яких операцій, оскільки tempdb автоматично наново кожного разу, що після перезапуску SQL Server. Таким чином, вона має не угод вперед, або відкотити. Під Вільний Вільний час запуску SQL Server, tempdb автоматично наново, використовуючи копію модель бази даних і бази даних tempdb скинути до останнього настроєний розміру. Налаштувати розмір є останній явні розмір, який був встановлений за допомогою розмір файлу змінюється операції, як Змінити базу даних , яка використовує параметр Змінити файл або DBCC SHRINKFILE заявою.

За промовчанням бази даних tempdb налаштовані на автоматичне Збільшення належним чином за потреби. Таким чином, ця база даних може несподівано рости в часі до розміру, більше, ніж потрібний розмір. Просто перезавантаження сервера SQL скидає розмір бази даних tempdb свій останній налаштований розмір.

У SQL Server 2005 і пізніших версій можна будь-який з наступних методів можна змінити розмір бази даних tempdb.

Згорнути цю таблицюРозгорнути цю таблицю
МетодПотрібен перезапуск?Додаткові відомості
ЗМІНИТИ БАЗУ ДАНИХТакДає повний контроль за розміром файли бази даних tempdb за промовчанням (tempdev і templog).
DBCC SHRINKDATABASEНіПрацює на рівні баз даних.
DBCC SHRINKFILEНіДозволяє зменшити окремі файли.
SQL Server управління студіїНіЦе в основному спосіб зменшити файли бази даних через графічний інтерфейс.

Примітка. SQL Server управління студії в SQL Server 2005 не показувати правильний розмір файли бази даних tempdb після операції стискання. Значення "Наразі розподілені простору" завжди простягається від sys. master_files DMV, і це значення не оновлюється після операції стискання виникнення для бази даних tempdb. Знайти правильний розмір файли бази даних tempdb після операції стискання, виконати наступну заяву в SQL Server управління студії:

use tempdb

select (size*8) as FileSizeKB from sys.database_files
Перші три методи обговорюються тут.

Примітка. Для установки SQL Server 2000 вам доведеться використовувати Query Analyzer замість SQL Server управління студії. Крім того, DBCC команд зажадає від вас поставити бази даних в одного користувача режимі.

Наступні три методи можна використовувати для стискання бази даних tempdb до розміру, що менше, ніж його налаштувати розмір.

Метод 1: Використовувати оператори Transact-SQL команд

Метод 2: Використовуйте команду DBCC SHRINKDATABASE

Спосіб 3: Використовувати DBCC SHRINKFILE команди

2501 та 8909 помилки під Вільний час виконання операції стискання

Якщо використовується бази даних tempdb, та при спробі зменшити його за допомогою DBCC SHRINKDATABASE або DBCC SHRINKFILE команди, може з'явитися протокол IMAP, які нагадують такі інтерактивні елементи, залежно від версії SQL Server, який використовується:

SQL Server 2005 і пізніших версій

Сервер: Msg 8909, рівень 16, держава 1, рядок 1 помилка таблиці: код об'єкта 0, індекс ID -1, розділ ID 0, дозволених unit ID 0 (або невідомо), код сторінки (6:8040) містить ID неправильна сторінка в його заголовку сторінки. PageId в заголовку сторінки = (0:0).

SQL Server 2000
Сервер: Msg 2501, рівні 16, держава 1, рядок 1 може не знайти таблицю, названий '1525580473'. Перевірити sysobjects.

Сервер: Msg 8909, рівень 16, держава 1, лінії 0 пошкоджений таблиці: код об'єкта 1, індекс ID 0, сторінки ID % S_PGID. PageId в заголовку сторінки = % S_PGID.



Примітки
  • Ці помилки не вказують будь-які реальні корупції в бази даних tempdb. Тим не менш, бути в курсі, що там можуть бути інші причини помилки корупції фізичний даних як помилка 8909 і що ці причини включають вводу-виводу підсистема проблем. Таким чином, якщо помилка відбувається за межами операції стискання, ви повинні робити більше розслідування.
  • В SQL Server 2005 і пізніших версій хоча 8909 протокол IMAP повертається до заяви або користувачу, який виконує операції стискання, стискання операцій не підведе.
  • У SQL Server 2000 і раніших версій ці помилки призведе до Автодобір ширини операцій на провал. Тому для стискання бази даних tempdb, вам доведеться перезапустити SQL Server для повторного створення бази даних tempdb. Щоб отримати додаткові відомості клацніть, номер статті в базі знань Майкрософт:
    277848 протокол IMAP про помилку "Таблиці пошкоджений об'єкт ID 0, індекс ID 0, сторінки ID" відбувається, коли ви запустити DBCC DBREINDEX в SQL Server


Посилання

Стиснути базу даних

Властивості

Номер статті: 307487 - Востаннє переглянуто: 30 квітня 2014 р. - Редакція: 3.1
Застосовується до:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Parallel Data Warehouse
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Parallel Data Warehouse
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Ключові слова: 
kbsqlsetup kbhowtomaster kbmt KB307487 KbMtuk
Машинний переклад
ВАЖЛИВО! Ця стаття перекладена засобами машинного перекладу Microsoft. Статтю можна редагувати в середовищі Community Translation Framework (CTF). Щоб якомога швидше перекласти всі статті у своїй базі знань різними мовами, компанія Microsoft не лише звертається до професійних перекладачів, але й вдається до машинного перекладу, який потім редагується спільнотою. Такі статті можуть містити лексичні, синтаксичні та граматичні помилки. Microsoft не несе відповідальності за будь-які неточності, помилки або збитки, до яких може призвести неправильний переклад статей або їх використання. Докладніше про CTF див. на веб-сторінці http://support.microsoft.com/gp/machine-translation-corrections/uk-ua.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 307487

Надіслати відгук

 

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