Dbcc checktable (transact-sql)

Таблиця або індексовані уявлення, для якої необхідно виконувати перевірки цілісності. Імена таблиць і уявлень повинні відповідати правилам побудови ідентифікаторів.

Вказує, що ретельну перевірку некластерізованних індексів для призначених для користувача таблиць виконувати не слід. Це зменшує загальний час виконання. Аргумент NOINDEX не впливає на перевірки системних таблиць, оскільки перевірки цілісності для індексів усіх системних таблиць виконуються завжди.

Ідентифікатор індексу, для якого виконуються перевірки цілісності. Якщо вказано аргумент index_id. інструкція DBCC CHECKTABLE виконує перевірки цілісності тільки для цього індексу, включаючи купу або кластерізованний індекс.

REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD

Вказує, що інструкції DBCC CHECKTABLE слід виправляти виявлені помилки. Для використання параметра виправлення база даних повинна бути відкрита в режимі одного.

Намагається усунути всі виявлені помилки. Ці виправлення можуть привести до часткової втрати даних.

Синтаксис зберігається тільки в цілях забезпечення сумісності. Дії по відновленню не виконуються.

Виконує дії з відновлення даних, які можна виконати без ризику їх втрати. Це може бути швидке відновлення (наприклад, відновлення відсутніх рядків в некластерізованних індексах) або більш ресурсомісткі операції (наприклад, перестроювання індексу).

REPAIR_REBUILD не виправляє помилки, пов'язані з даними FILESTREAM.

Використовуйте аргументи REPAIR тільки як останній засіб. Для усунення помилок рекомендується відновлення з резервної копії. Операції відновлення не враховують ніякі обмеження, які можуть існувати для таблиць або між таблицями. Якщо зазначена таблиця бере участь в одному або декількох обмеженнях, рекомендується після операції усунення помилок виконати інструкцію DBCC CHECKCONSTRAINTS. Якщо необхідно використовувати аргументи REPAIR, виконайте інструкцію DBCC CHECKTABLE без параметра відновлення, щоб дізнатися необхідний рівень відновлення. При використанні рівня REPAIR_ALLOW_DATA_LOSS рекомендується створити резервну копію бази даних перед виконанням інструкції DBCC CHECKTABLE з даними параметром.

Відображає необмежену кількість помилок. Всі повідомлення про помилки виводяться за замовчуванням. Вказівка ​​або пропуск цього параметра не призводить до змін.

Додаткові відомості див. В частині «Виконання логічних перевірок цілісності індексів» підрозділу «Примітки» далі в цьому розділі.

Пригнічує висновок всіх інформаційних повідомлень.

Вказує інструкції DBCC CHECKTABLE використовувати розділяється блокування таблиці замість створення внутрішнього моментального знімка бази даних. Аргумент TABLOCK дозволяє прискорити роботу інструкції DBCC CHECKTABLE в умовах високого завантаження, але знижує поточну узгодженість даних для таблиці під час виконання цієї інструкції.

Відображає передбачуваний розмір бази даних tempdb, необхідний для запуску інструкції DBCC CHECKTABLE з зазначеними параметрами.

Обмежує область перевірки цілісністю фізичної структури сторінок, заголовків записів і фізичної структури збалансованих дерев. Параметр призначений для виконання полегшеної перевірки фізичної узгодженості таблиці, а також може виявляти пошкоджені сторінки і загальні збої обладнання, які можуть привести до втрати даних. Повний запуск інструкції DBCC CHECKTABLE може зайняти значно більше часу, ніж в попередніх версіях. Це викликано наступними причинами.

Логічні перевірки стали більш складними.

Ускладнився ряд базових структур, які потребують перевірки.

Додано багато нових перевірок для підтримки нових функцій.

Іншими словами, вказівка ​​аргументу PHYSICAL_ONLY може істотно знизити час виконання інструкції DBCC CHECKTABLE для великих таблиць і тому рекомендується для частого використання в робочих системах. Також рекомендується періодично проводити повний запуск інструкції DBCC CHECKTABLE. Періодичність запуску залежить від чинників, індивідуальних для кожного підприємства і кожної виробничої середовища. Аргумент PHYSICAL_ONLY завжди неявно включає аргумент NO_INFOMSGS і не повинен вказуватися разом з параметрами виправлення помилок.

Вказівка ​​аргументу PHYSICAL_ONLY призводить до пропуску інструкцією DBCC CHECKTABLE всіх перевірок даних FILESTREAM.

Вказівка ​​значення аргументу призводить до виконання інструкцією DBCC CHECKTABLE перевірки таблиці на недійсність або вихід з допустимого діапазону значень стовпців. Наприклад, інструкція DBCC CHECKTABLE виявляє стовпці зі значеннями дати і часу, що виходять з допустимого діапазону значень типу даних datetime. або стовпці типу decimal або стовпці приблизних числових типів даних з неприпустимими значеннями масштабу або точності.

Якщо вказано аргумент PHYSICAL_ONLY, перевірка цілісності значень в стовпцях не виконується.

Звіт про помилки

Файл дампа містить результати виконання інструкції DBCC CHECKTABLE і додаткові діагностичні відомості. Доступ до цього файлу обмежений списками управління доступом на рівні користувачів. Доступ обмежений обліковим записом служби SQL Server і членами ролі sysadmin. За замовчуванням роль sysadmin містить всіх членів групи Windows BUILTIN \ Адміністратори і групи локальних адміністраторів. У разі помилки процесу збору даних команда DBCC не закінчується помилкою.

дозвіл помилок

Якщо інструкція DBCC CHECKTABLE видає будь-які помилки, рекомендується відновити базу даних з резервної копії, а не запускати параметр REPAIR з параметрами виправлення помилок. Якщо резервна копія відсутній, виправити видані помилки можна запуском параметра REPAIR. В кінці списку помилок зазначено, який з параметрів REPAIR слід використовувати. Однак виправлення помилок з параметром REPAIR_ALLOW_DATA_LOSS може вимагати видалення деяких сторінок, які можуть містити дані.

Виправлення помилок може бути виконано в призначеній для користувача транзакції, дозволяючи відкотити зроблені зміни. Після відкату виправлень база даних як і раніше буде містити помилки, і її необхідно буде відновити з резервної копії. Після завершення виправлення всіх помилок створіть резервну копію бази даних.