DBCC CHECKALLOC (Transact-SQL)

Sprawdza spójność struktur przydziału miejsca na dysku dla określonej bazy danych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

DBCC CHECKALLOC 
[
    ( database_name | database_id | 0 
      [ , NOINDEX 
      | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
    )
    [ WITH 
        { 
          [ ALL_ERRORMSGS ]
          [ , NO_INFOMSGS ] 
          [ , TABLOCK ] 
          [ , ESTIMATEONLY ] 
        }
    ]
]

Argumenty

  • database_name | database_id | 0
    To nazwa lub identyfikator bazy danych, dla których Sprawdzanie użycia przydziału i strona .Jeśli nie określono lub określono wartość 0, bieżąca baza danych jest używany.

    Nazwy bazy danych musi przestrzegać reguł dla identyfikatorów.

  • NOINDEX
    Określa, że ponownego zbudowania indeksów dla tabel użytkownika nie powinny być sprawdzane.

    Ostrzeżenie

    NOINDEX utrzymywana zgodność z poprzednimi wersjami i nie wpływa na DBCC CHECKALLOC.

  • REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
    Określa, że DBCC CHECKALLOC naprawić błędy znalezione.database_namemusi być w tryb jednego użytkownika.

    • REPAIR_ALLOW_DATA_LOSS
      Próbuje naprawić błędy, które zostały znalezione.Te naprawy może spowodować utratę danych.REPAIR_ALLOW_DATA_LOSS jest jedyną opcją umożliwiającą błędy alokacji naprawy.

    • REPAIR_FAST
      Składnia jest utrzymywana zgodność z poprzednimi wersjami.Są wykonywane żadne akcje naprawy.

    • REPAIR_REBUILD
      Nie dotyczy.

    Ważna informacjaWażne:

    Użyj opcji naprawy tylko w ostateczności.Aby naprawić błędy, zaleca się przywrócenie z kopia zapasowa.Operacje naprawy uważa ograniczenia, które mogą istnieć na lub między tabelami.Określona tabela jest zaangażowany w jednej lub więcej ograniczeń, zaleca się z systemem DBCC CHECKCONSTRAINTS po operacji naprawiania.Jeśli musisz użyć naprawy, uruchom DBCC CHECKDB bez opcji naprawy znaleźć naprawy poziom używania.Jeśli używasz REPAIR_ALLOW_DATA_LOSS poziom, zaleca się, to możesz tworzyć kopię zapasową bazy danych przed uruchomieniem DBCC CHECKDB przy użyciu tej opcji.

  • Z
    Włącza opcje, które zostaną określone.

  • ALL_ERRORMSGS
    Wyświetla wszystkie komunikaty o błędach.Domyślnie są wyświetlane wszystkie komunikaty o błędach.Określanie lub pominięcie tej opcji nie ma znaczenia.

  • NO_INFOMSGS
    Pomija wszystkie komunikaty informacyjne i raport zajmowane.

  • TABLOCK
    Powoduje, że polecenie DBCC uzyskiwania wyłącznego bazy danych blokada.

  • ESTIMATEONLY
    Wyświetla szacowaną liczbę tempdb miejsce, które są wymagane do uruchomienia DBCC CHECKALLOC, kiedy zostaną określone inne opcje.

Uwagi

DBCC CHECKALLOC sprawdza alokacji wszystkich stron w bazie danych, niezależnie od typu strona lub typ obiektu, do którego należą.Sprawdza też różnych wewnętrznych struktur, które są używane do śledzenia tych stron i relacje między nimi.

Jeśli NO_INFOMSGS nie jest określony, DBCC CHECKALLOC zbiera informacje o użycie miejsca dla wszystkich obiektów w bazie danych.Informacje te zostaną wydrukowane wraz ze znalezionych błędów.

Ostrzeżenie

Funkcje DBCC CHECKALLOC znajduje się w dbcc checkdb i dbcc checkfilegroup.Oznacza to, że nie trzeba osobno uruchamiać DBCC CHECKALLOC z tych sprawozdań.

Ostrzeżenie

DBCC CHECKALLOC nie sprawdza dane FILESTREAM.FILESTREAM przechowuje duże obiekty binarne (bloków BLOB) w systemie plików.

Migawki wewnętrznej bazy danych

DBCC CHECKALLOC używa wewnętrznego migawka bazy danych w celu zapewnienia spójności transakcyjnej, potrzebnych do wykonywania tych kontroli.Jeśli nie można utworzyć migawka lub określonym TABLOCK, DBCC CHECKALLOC próbuje uzyskać blokada wyłączności (X) bazy danych, aby uzyskać wymaganą konsystencję.Aby uzyskać więcej informacji na temat blokady zobacz Tryby Lock.

Ostrzeżenie

W SQL Server 2005 i nowszej, działającego DBCC CHECKALLOC przeciwko tempdb nie wykonuje żadnych kontroli.To, ponieważ ze względu na wydajność bazy danych migawek nie są dostępne na tempdb.Oznacza to, nie można uzyskać wymaganej spójności transakcyjnej.Zatrzymywania i uruchamiania usługa MSSQLSERVER do rozwiązania tempdb problemy alokacji.Ta akcja spadnie i odtwarza tempdb bazy danych.

Opis komunikatów o błędach DBCC

Po zakończeniu działania polecenia DBCC CHECKALLOC jest zapisywany komunikat SQL Server dziennik błędów.Jeśli polecenie DBCC pomyślnie wykona wiadomości wskazuje pomyślne zakończenie i czas uruchomienia polecenia.Polecenie DBCC zatrzymuje się przed zakończeniem kontroli z powodu błędu, komunikat wskazuje, polecenie zostało zakończone, wartość stanu i czas , który uruchomił polecenie.W poniższej tabela wymieniono i opisano wartości stanu, które mogą być dołączone do wiadomości.

Stan

Opis

0

Błąd numer 8 930 był uruchamiany.Oznacza to uszkodzenie metadane , który spowodował polecenie DBCC, aby zakończyć.

1

Błąd numer 8967 był uruchamiany.Wystąpił błąd wewnętrzny DBCC.

2

Wystąpił błąd podczas naprawy bazy danych trybu awaryjnego.

3

Oznacza to uszkodzenie metadane , który spowodował polecenie DBCC, aby zakończyć.

4

Wykryto assert lub naruszenie zasad dostępu.

5

Wystąpił nieznany błąd, który polecenie DBCC zakończone.

Raportowanie błędów

Plikautomatyczna kopia zapasowa mini-(SQLDUMPnnnn.txt) jest tworzony w SQL Server katalog dziennika, ilekroć DBCC CHECKALLOC wykryje błąd uszkodzenia.Jeżeli dane użycia funkcji kolekcja i funkcje raportowania błędów są włączone dla wystąpienie SQL Server, plik jest automatycznie przesyłane dalej Microsoft.Zebrane dane są używane do poprawy SQL Server funkcji.

Plik automatyczna kopia zapasowa zawiera wyniki polecenia DBCC CHECKALLOC i dodatkowej produkcji diagnostycznych.Plik ograniczył listach arbitralnej kontroli dostępu (DACL).Dostęp jest ograniczony do SQL Serverkontousługa i członków sysadmin rolę.Domyślnie sysadmin roli zawiera wszystkich członków grupy systemu Windows BUILTIN\Administratorzy oraz grupa administratora lokalnego.Polecenie DBCC się nie powieść, jeśli proces kolekcja danych nie powiedzie się.

Rozwiązywanie błędów

Jeśli DBCC CHECKALLOC raportuje błędy, zaleca się, że przywracanie bazy danych z bazy danych kopia zapasowa zamiast naprawy.Jeśli nie ma kopia zapasowa , uruchomić narzędzie do naprawy można poprawić błędy raportowane; poprawianie błędów mogą jednak wymagać niektórych stron i w związku z tym dane mają zostać usunięte.

Narzędzie do naprawy można wykonać w transakcji użytkownika.Pozwala to na zmiany można wycofać.Jeśli zmiany są przywracane, baza danych będzie nadal zawierać błędy i musi zostać przywrócony z kopia zapasowa.Po zakończeniu naprawy, tworzyć kopię zapasową bazy danych.

Zestawy wyników

W poniższych tabelach opisano informacje, które zwraca DBCC CHECKALLOC.

Element

Opis

FirstIAM

Tylko do użytku wewnętrznego.

Katalog główny

Tylko do użytku wewnętrznego.

Dpages

Liczba strona danych.

Strony

Przydzielonych stron.

Dedykowany zakresów

Zakresy przydzielone do obiektu.

Jeśli używane są mieszane alokacji stron, może być przydzielonych bez zakresów stron.

DBCC CHECKALLOC również raporty podsumowujące dla każdego indeksu i partycji w każdym pliku przydziału.Podsumowanie to zawiera opis dystrybucji danych.

Element

Opis

Zarezerwowane stron

Strony przydzielonych do indeksu i nieużywanych stron w przydzielonych zakresach.

Używanych stron

Przydzielonych stron i używany przez indeks.

Identyfikator partycji

Tylko do użytku wewnętrznego.

Identyfikator jednostki alokacji

Tylko do użytku wewnętrznego.

W wierszu danych

Strony zawierają dane indeksu lub sterty.

Dane LOB

Pages contain varchar(max), nvarchar(max), varbinary(max), text, ntext, xml, and image data.

Przepełnienie wiersza danych

Strony zawierają dane o zmiennej długości kolumna , które ma została przesunięta poza wiersz.

DBCC CHECKALLOC zwraca następujące zestaw wyników (wartości mogą się różnić), z wyjątkiem przypadków, gdy określono ESTIMATEONLY lub NO_INFOMSGS.

DBCC results for 'master'.

************************************************************* Table sysobjects Object ID 1. Index ID 1 FirstIAM (1:11) Root (1:12) Dpages 22. Index ID 1. 24 pages used in 5 dedicated extents. Index ID 2 FirstIAM (1:1368) Root (1:1362) Dpages 10. Index ID 2. 12 pages used in 2 dedicated extents. Index ID 3 FirstIAM (1:1392) Root (1:1408) Dpages 4. Index ID 3. 6 pages used in 0 dedicated extents. Total number of extents is 7. ************************************************************* '...' ************************************************************* Table spt_server_info Object ID 1938105945. Index ID 1 FirstIAM (1:520) Root (1:508) Dpages 1. Index ID 1. 3 pages used in 0 dedicated extents. Total number of extents is 0. ************************************************************* Processed 52 entries in sysindexes for database ID 1. File 1. Number of extents = 210, used pages = 1126, reserved pages = 1280. File 1 (number of mixed extents = 73, mixed pages = 184). Object ID 1, Index ID 0, data extents 5, pages 24, mixed extent pages 9. '...' Object ID 1938105945, Index ID 0, data extents 0, pages 3, mixed extent pages 3. Total number of extents = 210, used pages = 1126, reserved pages = 1280 in this database. (number of mixed extents = 73, mixed pages = 184) in this database. CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'. DBCC results for 'master'. ************************************************************* Table sys.sysrowsetcolumns Object ID 4. Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). FirstIAM (1:98). Root (1:94). Dpages 7. Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). 9 pages used in 1 dedicated extents. Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). FirstIAM (0:0). Root (0:0). Dpages 0. Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). 0 pages used in 0 dedicated extents. Total number of extents is 1. ... ************************************************************* Processed 201 entries in system catalog for database ID 1. File 1. Number of extents = 44, used pages = 300, reserved pages = 345. File 1 (number of mixed extents = 29, mixed pages = 225). Object ID 4, index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data), data extents 1, pages 9, mixed extent pages 8. Object ID 5, index ID 1, partition ID 327680, alloc unit ID 327680 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 7, index ID 1, partition ID 458752, alloc unit ID 458752 (type In-row data), data extents 0, pages 5, mixed extent pages 5. Object ID 8, index ID 0, partition ID 524288, alloc unit ID 524288 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 13, index ID 1, partition ID 851968, alloc unit ID 851968 (type In-row data), data extents 1, pages 9, mixed extent pages 8. Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 26, index ID 1, partition ID 281474978414592, alloc unit ID 1703937 (type In-row data), data extents 0, pages 3, mixed extent pages 3. Object ID 27, index ID 1, partition ID 281474978480128, alloc unit ID 1769473 (type In-row data), data extents 0, pages 3, mixed extent pages 3. Object ID 27, index ID 2, partition ID 562949955190784, alloc unit ID 1769474 (type In-row data), index extents 0, pages 3, mixed extent pages 3. ... Object ID 1179151246, index ID 1, partition ID 72057594038845440, alloc unit ID 13435136 (type In-row data), data extents 2, pages 18, mixed extent pages 8. Object ID 1179151246, index ID 2, partition ID 72057594038910976, alloc unit ID 13566208 (type In-row data), index extents 1, pages 16, mixed extent pages 8. Object ID 1911677858, index ID 0, partition ID 72057594039631872, alloc unit ID 15073536 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Total number of extents = 41, used pages = 289, reserved pages = 323 in this database. (number of mixed extents = 27, mixed pages = 211) in this database. CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Po określeniu ESTIMATEONLY DBCC CHECKALLOC zwraca następujące zestaw wyników.

Estimated TEMPDB space needed for CHECKALLOC (KB) 
------------------------------------------------- 
34

(1 row(s) affected)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Uprawnienia

Wymaga członkostwa w sysadmin stała rola serwera lub db_owner rola bazy danychstałej.

Przykłady

Poniższy przykład wykonuje DBCC CHECKALLOC dla bieżącej bazy danych i AdventureWorks2008R2 bazy danych.

-- Check the current database.
DBCC CHECKALLOC;
GO
-- Check the AdventureWorks2008R2 database.
DBCC CHECKALLOC (AdventureWorks2008R2);
GO