Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Język programowania Transact-SQL zawiera instrukcje DBCC, które działają jako polecenia konsoli bazy danych dla programu SQL Server.
Instrukcje polecenia konsoli bazy danych są pogrupowane w następujące kategorie.
| Kategoria poleceń | Wykonać |
|---|---|
| Konserwacja | Zadania konserwacji bazy danych, indeksu lub grupy plików. |
| Rozmaity | Różne zadania, takie jak włączanie flag śledzenia lub usuwanie biblioteki DLL z pamięci. |
| Informacyjne | Zadania, które zbierają i wyświetlają różne typy informacji. |
| Walidacja | Operacje weryfikacji na bazie danych, tabeli, indeksie, katalogu, grupie plików lub alokacji stron bazy danych. |
Polecenia DBCC przyjmują parametry wejściowe i zwracane wartości. Wszystkie parametry polecenia DBCC mogą akceptować zarówno literały Unicode, jak i DBCS.
Użycie wewnętrznej migawki bazy danych DBCC
Następujące polecenia DBCC działają na wewnętrznej migawki bazy danych tylko do odczytu tworzonej przez aparat bazy danych. Migawka uniemożliwia blokowanie i problemy ze współbieżnością podczas wykonywania tych poleceń. Aby uzyskać więcej informacji, zobacz Database Snapshots (SQL Server).
DBCC CHECKALLOCDBCC CHECKCATALOGDBCC CHECKDBDBCC CHECKFILEGROUPDBCC CHECKTABLE
Podczas wykonywania jednego z tych poleceń DBCC aparat bazy danych tworzy migawkę bazy danych i przenosi ją do stanu spójnej transakcyjnie. Następnie polecenie DBCC uruchamia testy względem tej migawki. Po zakończeniu wykonywania polecenia DBCC ta migawka zostanie porzucona.
Czasami wewnętrzna migawka bazy danych nie jest wymagana lub nie można jej utworzyć. W takim przypadku polecenie DBCC jest wykonywane względem rzeczywistej bazy danych. Jeśli baza danych jest w trybie online, polecenie DBCC używa blokady tabeli w celu zapewnienia spójności sprawdzanych obiektów. To zachowanie jest takie samo, jak w przypadku określenia opcji WITH TABLOCK.
Wewnętrzna migawka bazy danych nie jest tworzona po wykonaniu polecenia DBCC:
- W przypadku bazy danych
masterwystąpienie programu SQL Server działa w trybie pojedynczego użytkownika. - W przypadku bazy danych innej niż
masterbaza danych została umieszczona w trybie pojedynczego użytkownika przy użyciu instrukcjiALTER DATABASE. - W odniesieniu do bazy danych tylko do odczytu.
- W przypadku bazy danych, która została ustawiona w trybie awaryjnym przy użyciu instrukcji
ALTER DATABASE. - Względem
tempdb. W takim przypadku nie można utworzyć migawki bazy danych z powodu ograniczeń wewnętrznych. - Za pomocą opcji
WITH TABLOCK. W takim przypadku dbCC honoruje żądanie, nie tworząc migawki bazy danych.
Polecenia DBCC używają blokad tabeli zamiast wewnętrznych migawek bazy danych, gdy polecenie jest wykonywane w następujący sposób:
- Grupa plików tylko do odczytu
- System plików FAT
- Wolumin, który nie obsługuje nazwanych strumieni
- Wolumin, który nie obsługuje alternatywnych strumieni
Nuta
Próba uruchomienia DBCC CHECKALLOClub równoważnej części DBCC CHECKDBprzy użyciu opcji WITH TABLOCK wymaga blokady na wyłączność bazy danych (X). Nie można ustawić tej blokady bazy danych na tempdb lub master i prawdopodobnie zakończy się niepowodzeniem we wszystkich innych bazach danych.
Nuta
DBCC CHECKDB kończy się niepowodzeniem, gdy jest uruchamiany względem master, jeśli nie można utworzyć wewnętrznej migawki bazy danych.
Raportowanie postępu dla poleceń DBCC
Widok wykazu sys.dm_exec_requests zawiera informacje o postępie i bieżącej fazie wykonywania poleceń DBCC CHECKDB, CHECKFILEGROUPi CHECKTABLE. Kolumna percent_complete wskazuje procent wykonania polecenia, a kolumna command zgłasza bieżącą fazę wykonywania polecenia.
Definicja jednostki postępu zależy od bieżącej fazy wykonywania polecenia DBCC. Czasami postęp jest zgłaszany na stopień szczegółowości strony bazy danych, w innych fazach jest zgłaszany na stopień szczegółowości pojedynczej bazy danych lub naprawy alokacji. W poniższej tabeli opisano każdą fazę wykonywania oraz stopień szczegółowości, w którym polecenie zgłasza postęp.
| Faza wykonywania | Opis | Stopień szczegółowości raportowania postępu |
|---|---|---|
DBCC TABLE CHECK |
W tej fazie sprawdzana jest logiczna i fizyczna spójność obiektów w bazie danych. | Postęp zgłaszany na poziomie strony bazy danych. Wartość raportowania postępu jest aktualizowana dla każdej 1000 stron bazy danych, które są sprawdzane. |
DBCC TABLE REPAIR |
Naprawy bazy danych są wykonywane w tej fazie, jeśli określono REPAIR_FAST, REPAIR_REBUILDlub REPAIR_ALLOW_DATA_LOSS i występują błędy obiektu, które należy naprawić. |
Postęp zgłaszany na poziomie indywidualnej naprawy. Licznik jest aktualizowany dla każdej zakończonej naprawy. |
DBCC ALLOC CHECK |
Struktury alokacji w bazie danych są sprawdzane w tej fazie. Uwaga: DBCC CHECKALLOC wykonuje te same kontrole. |
Postęp nie jest zgłaszany |
DBCC ALLOC REPAIR |
Naprawy bazy danych są wykonywane w tej fazie, jeśli określono REPAIR_FAST, REPAIR_REBUILDlub REPAIR_ALLOW_DATA_LOSS i występują błędy alokacji, które należy naprawić. |
Postęp nie jest zgłaszany. |
DBCC SYS CHECK |
Tabele systemu bazy danych są sprawdzane w tej fazie. | Postęp zgłaszany na poziomie strony bazy danych. Wartość raportowania postępu jest aktualizowana dla co 1000 stron bazy danych, które są sprawdzane. |
DBCC SYS REPAIR |
Naprawy bazy danych są wykonywane w tej fazie, jeśli określono REPAIR_FAST, REPAIR_REBUILDlub REPAIR_ALLOW_DATA_LOSS i występują błędy tabeli systemu, które należy naprawić. |
Postęp zgłaszany na poziomie indywidualnej naprawy. Licznik jest aktualizowany dla każdej zakończonej naprawy. |
DBCC SSB CHECK |
Obiekty brokera usług programu SQL Server są sprawdzane w tej fazie. Uwaga: Ta faza nie jest wykonywana podczas wykonywania DBCC CHECKTABLE. |
Postęp nie jest zgłaszany. |
DBCC CHECKCATALOG |
Spójność wykazów baz danych jest sprawdzana w tej fazie. Uwaga: ta faza nie jest wykonywana podczas wykonywania DBCC CHECKTABLE. |
Postęp nie jest zgłaszany. |
DBCC IVIEW CHECK |
W tej fazie sprawdzana jest logiczna spójność wszystkich indeksowanych widoków znajdujących się w bazie danych. | Postęp zgłaszany na poziomie sprawdzanego widoku pojedynczej bazy danych. |
Instrukcje informacyjne
- BUFOR WEJŚCIOWY DBCC
- DBCC SHOWCONTIG
- DBCC OPENTRAN
- BUFOR WYJŚCIOWY DBCC
- DBCC PROCCACHE
- DBCC SHOW_STATISTICS
- DBCC SQLPERF
- DBCC TRACESTATUS
- DBCC USEROPTIONS
Instrukcje weryfikacji
- DBCC CHECKALLOC
- KATALOG KONTROLNY DBCC
- OGRANICZENIA KONTROLNE DBCC
- Polecenie DBCC CHECKDB
- DBCC CHECKFILEGROUP
- DBCC CHECKIDENT
- DBCC CHECKTABLE
Instrukcje konserwacji
- DBCC CLEANTABLE DBCC
- DBCC DBREINDEX
- DBCC DROPCLEANBUFFERS
- DBCC FREEPROCCACHE
- DBCC INDEXDEFRAG
- DBCC SHRINKDATABASE
- DBCC SHRINKFILE
- AKTUALIZACJA DBCC UŻYCIE
Różne instrukcje
- DBCC dllname (BEZPŁATNA)
- POMOC DBCC
- DBCC FLUSHAUTHCACHE
- DBCC TRACEOFF
- DBCC FREESESSIONCACHE
- DBCC TRACEON
- DBCC FREESYSTEMCACHE
- DBCC CLONEDATABASE (Dotyczy: SQL Server 2014 (12.x) z dodatkiem Service Pack 2 lub nowszym).