DBCC CHECKALLOC (Transact-SQL)

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

Topic link iconKonwencje składni języka Transact-SQL

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 sprawdzenie alokacji i użycia strona.Jeśli nie zostanie określony, lub jeżeli określono wartość 0, bieżąca baza danych jest używana.

    Nazwy bazy danych muszą być zgodne z zasadami identyfikatory.

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

    Uwaga

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

  • REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
    Specifies that DBCC CHECKALLOC repair the found errors.database_name must be in single-user mode.

    • REPAIR_ALLOW_DATA_LOSS
      Próbuje naprawić błędy, które znajdują się.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.Żadne naprawy akcje są wykonywane.

    • REPAIR_REBUILD
      Nie dotyczy.

    Important noteImportant Note:

    Za pomocą opcji naprawy tylko w ostateczności.Aby naprawić błędy, zaleca się przywrócenie z kopia zapasowa.Operacje naprawy nie rozważyć żadnego ograniczenia, może istnieć na lub między tabelami.Jeśli określona tabela uczestniczy w jednej lub więcej ograniczeń, zaleca się systemem CHECKCONSTRAINTS DBCC po operacji naprawy.Jeśli musisz użyć REPAIR, CHECKDB DBCC powinny być uruchamiane bez opcji naprawy, aby znaleźć używany poziom naprawy.Jeżeli korzystasz z poziom REPAIR_ALLOW_DATA_LOSS, zaleca się wykonanie tworzyć kopię zapasową zapasowej bazy danych przed uruchomieniem CHECKDB DBCC przy użyciu tej opcji.

  • Z
    jeden-do-jednego

  • ALL_ERRORMSGS
    Wyświetla wszystkie komunikaty o błędach.W SQL Server 2008 Dodatek usługa Pack 1 (SP1), wszystkie komunikaty o błędach są domyślnie wyświetlane. Określanie lub pomijanie tej opcji nie powoduje żadnych zmian.We wcześniejszych wersjach SQL Server (z wyjątkiem SQL Server 2005 Dodatek SP3), jeżeli nie określono ALL_ERRORMSGS wyświetlane są tylko pierwszy błąd 200 wiadomości dla każdego obiektu.

  • NO_INFOMSGS
    Pomija wszystkie komunikaty informacyjne oraz na nim miejsca.

  • TABLOCK
    Powoduje, że polecenie DBCC uzyskanie blokada wyłączności bazy danych.

  • Ograniczenia stosuje się podczas wskazówki są używane w kwerendach bazach danych z poziom zgodności 90 i wyższych.
    Wyświetla szacowaną ilość tempdb Miejsce wymagane do uruchomienia DBCC CHECKALLOC, gdy określono dla wszystkich innych opcji.

Remarks

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

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

Uwaga

Funkcja DBCC CHECKALLOC znajduje się w DBCC CHECKDB and DBCC CHECKFILEGROUP.Oznacza to, że nie trzeba osobno uruchamiać DBCC CHECKALLOC z tych instrukcji.

Uwaga

DBCC CHECKALLOC nie sprawdza FILESTREAM danych.FILESTREAM przechowuje duże obiekty binarne (BLOBS) w systemie plików.

Wewnętrzny migawka bazy danych

DBCC CHECKALLOC używa migawka wewnętrznej bazy danych w celu zapewnienia spójności transakcyjnej, które należy wykonać następujące testy.Jeśli nie można utworzyć migawkę lub TABLOCK jest określony, DBCC CHECKALLOC próbuje uzyskać blokada wyłączności (X), do bazy danych, aby uzyskać wymagane spójności.Aby uzyskać więcej informacji na temat blokady Zobacz Tryby blokada.

Uwaga

W SQL Server 2005 i później, uruchamiając DBCC CHECKALLOC przed tempdb nie wykonuje żadnych kontroli. Jest to, ponieważ ze względu na wydajność, nie są dostępne na bazę danych migawek tempdb. Oznacza to, że nie można uzyskać wymaganej spójności transakcyjnej.Zatrzymywanie i uruchamianie usługa MSSQLSERVER żadnego rozwiązania tempdb problemy z alokacji. Akcja ta spadnie i odtwarza tempdb Baza 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 wykonuje, wiadomości oznacza pomyślne zakończenie i czas, który uruchomił polecenie.Jeśli polecenie DBCC zatrzyma się przed zakończeniem sprawdzania z powodu błędu, wiadomości wskazuje polecenie zostało zakończone, wartość stan i czas uruchomienia polecenia.W poniższej tabela wymieniono i opisano wartości stanu, które mogą być dołączone do wiadomości.

Stan

Description

0

Numer błędu 8930 był uruchamiany.Oznacza to uszkodzenie metadane, powodujące polecenie DBCC, aby zakończyć.

1

Numer błędu 8967 był uruchamiany.Wystąpił błąd wewnętrzny DBCC.

2

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

3

Oznacza to uszkodzenie metadane, powodujące polecenie DBCC, aby zakończyć.

4

Wykryto naruszenie zasad dostępu lub zapewnienia.

5

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

Raportowanie błędów

Plik mini-automatyczna kopia zapasowa (SQLDUMPNNNNtworzenia w .txt)SQL Server DZIENNIK katalogu za każdym razem, gdy DBCC CHECKALLOC wykryje błąd uszkodzenia. Gdy dane użycia funkcji kolekcja i raportowanie błędów funkcji są włączone dla wystąpienie SQL Server, plik jest automatycznie przesyłane dalej do Microsoft. Zebrane dane są używane do poprawienia SQL Server funkcje.

Plik automatyczna kopia zapasowa zawiera wyniki polecenia DBCC CHECKALLOC i dodatkowe dane wyjściowe diagnostycznych.Plik ograniczył listach arbitralnej kontroli dostępu (DACL).Dostęp jest ograniczony do SQL Server usługa kont i członkowie sysadmin Rola. Domyślnie sysadmin Rola zawiera wszystkich członków grupy BUILTIN\Administratorzy systemu Windows oraz do lokalnej grupy Administratorzy. Polecenie DBCC nie się niepowodzeniem, gdy proces zbierania danych nie powiodło się.

Rozwiązywanie błędów

DBCC CHECKALLOC raportuje wszystkie błędy, zaleca się przywrócenie bazy danych z kopia zapasowa bazy danych, zamiast naprawy.Jeśli kopia zapasowa nie istnieje, uruchomienie naprawy może poprawiać błędy raportowane, poprawianie błędów mogą jednak wymagać niektórych stron i w związku z tym dane mają zostać usunięte.

Naprawa można wykonać w ramach transakcji użytkownika.Dzięki temu można wycofać zmian.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, Utwórz kopię zapasową bazy danych.

Zestawy wyników

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

Element

Description

FirstIAM

Tylko do użytku wewnętrznego.

Katalog główny

Tylko do użytku wewnętrznego.

Dpages

Liczba stron 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 także raporty podsumowujące dla każdego indeksu i partycji w każdym pliku przydziału.Podsumowanie to zawiera opis dystrybucji danych.

Element

Description

Zarezerwowane stron

Przydzielonych do indeksu i nieużywanych stron w przydzielonych zakresów stron.

Używane strony

Przydzielonych stron i używany przez indeks.

Identyfikator partycji

Tylko do użytku wewnętrznego.

Identyfikator jednostki alokacji

Tylko do użytku wewnętrznego.

Dane w wierszu

Strony zawierają dane indeksu lub sterty.

Dane LOB

Strony zawierają varchar(max), nvarchar(max), varbinary(max), text, ntext, xml, a image dane.

wiersze danych przekraczające rozmiar strony

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

DBCC CHECKALLOC zwraca następujący zestaw wyników (wartości mogą być różne), 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ący 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

Członkostwo w grupie wymaga sysadmin Rola serwera stałe lub db_owner stała rola bazy danych.

Przykłady

W poniższym przykładzie wykonywany DBCC CHECKALLOC dla bieżącej bazy danych i AdventureWorks Baza danych.

Historia zmian

Microsoft Learning

W definicji ALL_ERRORMSGS opisane nowe funkcje w SQL Server 2008 Z DODATKIEM SP1.