Опубликован: 11.12.2006 | Уровень: специалист | Доступ: платный
Дополнительный материал 3:

Приложение C. Команды DBCC

В Microsoft SQL Server имеется набор команд, предназначенный для выявления и устранения проблем согласованности в базе данных SQL Server. Для запуска этих команд нужно использовать в качестве префикса строку DBCC. На самом деле "DBCC" означает "database consistency checker" (средство проверки согласованности базы данных). Хотя команды DBCC первоначально разрабатывались как инструменты проверки согласованности, со временем диапазон применения команд DBCC расширился.

В этом приложении приводится список команд DBCC и дается краткое описание каждой команды, что позволяет вам быстро находить нужную вам команду. В этом приложении не представлены все параметры каждой команды DBCC. Полные инструкции по выполнению этих команд можно найти в SQL Server Books Online.

  • CHECKALLOC.Проверяет размещение и использование всех страниц в указанной базе данных. CHECKALLOC – это подмножество CHECKDB.
  • CHECKCATALOG. Проверяет согласованность в системных таблицах для указанной базы данных.
  • CHECKCOSTRAINTS. Проверяет целостность одного ограничения или всех ограничений по таблице.
  • CHECKDB.Проверяет размещение (строк, страниц и экстентов) и структурную целостность всех объектов в указанной базе данных. Эта команда выявляет и устраняет проблемы, связанные с размещением базы данных и таблицами. На самом деле DBCC CHECKDB проверяет целостность всех элементов в базе данных. Будьте готовы к тому, что для ее выполнения потребуется некоторое время.
  • CHECKFILEGROUP. Проверяет размещение и структурную целостность объектов в указанной группе файлов базы данных. Вы можете использовать эту команду вместо DBCC CHECKDB, если предполагаете, что запорчена только группа файлов, что может произойти из-за отказа оборудования.
  • CHECKIDENT.Проверяет и, если нужно, исправляет текущее значение типа identity для указанной таблицы.
  • CHECKTABLE. Проверяет целостность страниц типа data, index, text, ntext и image для указанной таблицы. Эта команда полезна для проверки таблицы, которая, по вашим предположениям, может быть повреждена.
  • CLEANTABLE. Возвращает пространство, которое раньше использовалось для данных переменной длины типа varchar или данных типа text.
  • CONCURRENCYVIOLATION. Для версий SQL Server Standard Edition и Personal Edition сообщает, когда на сервере одновременно исполняется более пяти пакетов.
  • DBREINDEX Использовалась для переиндексации индексов таблицы. Эта команда уже не поддерживается в SQL Server 2000. Для выполнения этой задачи в Microsoft SQL Server 2000 используйте предложение DROP_EXISTING с командой CREATE INDEX.
  • DBREPAIR. Использовалась для удаления поврежденной базы данных. Эта команда не поддерживается в SQL Server 2000. Вместо нее следует использовать команду DROP DATABASE.
  • dll-имя (FREE). Выгружает из памяти указанную расширенную хранимую DLL-процедуру.
  • DROPCLEANBUFFERS. Удаляет все пустые буферы из буферного пула.
  • FREEEPROCCACHE. Удаляет все элементы из кэша процедур.
  • HELP.Возвращает синтаксис указанного оператора DBCC, что позволяет вам быстро использовать эту команду без обращения к SQL Server Books Online. Задавая имя оператора, не указывайте ключевое слово DBCC.
  • INDEXDEFRAG.Дефрагментирует кластеризованные и вторичные индексы для указанной таблицы.
  • INPUTBUFFER. Выводит на экран последний оператор, переданный в SQL Server пользователем, который связан с указанным идентификатором системного процесса (SPID-номером).
  • MEMUSAGE.Раньше создавал подробный отчет об использовании памяти. Эта команда больше не поддерживается.
  • NEWALLOC.Обеспечивает те же функциональные возможности, что и команда DBCC CHECKALLOC. Эта команда больше не поддерживается.
  • OPENTRAN. Выводит информацию о самой "старой" активной транзакции в базе данных. Это полезно для поиска "зависших" или длительных транзакций.
  • OUTPUTBUFFER. Выводит выходные данные, переданные из SQL Server пользователю, который связан с указанным SPID-номером.
  • PINTABLE.Помечает таблицу как закрепляемую в памяти. Закрепляемая в памяти таблица не освобождает себя из кэш-памяти. Иными словами, она постоянно размещена в кэше и не извлекается из него. Это полезно для небольших таблиц, которые редко используются, но требуют немедленного доступа. Вы должны убедиться, что закрепляемая в памяти таблица не использует слишком много памяти, иначе это окажет нежелательное влияние на другую обработку в SQL Server.
  • PROCCACHE.Выводит информацию о кэше процедур SQL Server. Эта информация может оказаться полезной для оценки эффективности кэша процедур и операторов SQL.
  • ROWLOCK.Использовалась в Microsoft SQL Server 6.5, чтобы активизировать блокировку строк. В SQL Server 2000 это происходит автоматически.
  • SHOWCONTIG. Выводит информацию о фрагментированности данных и индексов в указанной таблице. Сильно фрагментированный индекс следует создать заново. Сильно фрагментированную таблицу следует экспортировать и затем импортировать назад в базу данных.
  • SHOW_STATISTICS.Выводит статистику для указанного элемента в указанной таблице. Именно эта статистика используется оптимизатором запросов.
  • SHRINKDATABASE.Уплотняет файлы, связанные с указанной базой данных. Для выполнения этой задачи рекомендуется использовать параметр autoshrink процедуры sp_dboption.
  • SHRINKFILE. Уплотняет указанный файл. Это может быть файл данных или файл журнала.
  • SQLPERF.Предоставляет информацию об использовании пространства для журнала транзакций во всех базах данных. Использование этой команды для слежения за использованием пространства файлов журнала полезно для планирования мощности и состава системы.
  • TEXTALL. Использовалась для проверки согласованности таблиц, содержащих колонки типа text, ntext и image. В SQL Server 2000 ту же задачу выполняют DBCC CHECKDB и CHECKTABLE. Однако вместо DBCC TEXTALL рекомендуется использовать DBCC CHECKDB.
  • TEXTALLOC. Использовалась для проверки согласованности таблиц, содержащих колонки типа text, ntext и image. В SQL Server 2000 ту же задачу выполняют DBCC CHECKDB и CHECKTABLE. Однако вместо DBCC TEXTALLOC рекомендуется использовать DBCC CHECKTABLE. DBCC TEXTALL раньше запускала DBCC TEXTALLOC.
  • TRACEOFF. Сбрасывает указанный флаг или флаги трассировки SQL Server.
  • TRACEON. Активизирует указанный флаг или флаги трассировки SQL Server.
  • TRACESTATUS.Выводит состояние указанного флага или флагов трассировки SQL Server.
  • UNPINTABLE. Помечает ранее закрепленную в памяти таблицу как незакрепленную. После этого таблица рассматривается в кэше как любая другая таблица.
  • UPDATEUSAGE. Выводит и исправляет неточности в таблице sysindexes. Эти неточности могут приводить к тому, что sp_spaceused будет возвращать неверные данные.
  • USEROPTIONS.Возвращает состояние операций оператора SET, заданных для текущего соединения. Это подходит только для текущего соединения.
Максим Ерохин
Максим Ерохин
Россия, г. Санкт-Петербург
Татьяна Лубинец
Татьяна Лубинец
Россия, Уфа, Уфимский авиационный институт, 1987