Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

DBCC kommandon - några odukomenterade (SQL 6.5)

Postad 2002-09-27 av Susanne Hayat i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 3023, Betyg: 0%

Förord

I den här artikeln tänker jag berätta om några användbara odokumenterade DBCC kommandon, och hur du med hjälp av dem kan administrera och övervaka i SQL Server 6.5.
Innehåll
  » DBCC ALLOCDUMP
  » DBCC BHASH
  » DBCC Buffer
  » DBCC Bytes
  » DBCC DBInfo
  » DBCC DBTable
  » DBCC DELETE_ROW
  » DBCC DES
  » DBCC EXTENTCHAIN
  » DBCC EXTENTCHECK
  » DBCC EXTENTDUMP
  » DBCC EXTENTZAP
  » DBCC FINDNOTFULLEXTENTS
  » DBCC HELP
  » DBCC IND
  » DBCC LOCATEINDEXPGS
  » DBCC LOCK
  » DBCC LOG
  » DBCC Page
  » DBCC PGLINKAGE
  » DBCC PROCBUF
  » PRTIPAGE
  » DBCC PSS
  » DBCC REBUILDEXTENTS
  » DBCC RESOURCE
  » DBCC SHOW_BUCKET
  » DBCC TAB

Användbara odokumenterade DBCC kommandon i SQL Server 6.5


av Alexander Chigrik

DBCC är en förkortning för ”Database Console Command”. DBCC kommandon används generellt sett till att se över en databas fysiska och logiska stabilitet, fast de används även till andra varierande uppgifter som du snart kommer att få se.

Notera att kommandot
DBCC TRACEON (3604)
finns utskrivet före var och en av de följande DBCC exemplen. Kommandot finns där för att bättre kunna demonstrera effekten av varje kommando genom att lista riktningen av resultaten från DBCC kommandona. Om du skulle skriva ut något av följande DBCC kommandon utan ta med ovanstående kommando, så kommer DBCC kommandona att köras, men du kommer inte att se vad som händer.


DBCC ALLOCDUMP

Det här kommandot kan användas till att visa alla områden på en allokeringssida.

Syntax:
DBCC allocdump(dbid,page)

där:
dbid - databasID
page – numret på allokeringssidan

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @pageid int
SELECT @dbid = DB_ID('pubs')
SELECT @pageid = first FROM sysindexes
WHERE id = object_id('titleauthor') AND indid = 1
DBCC allocdump(@dbid, @pageid)



DBCC BHASH

Det här kommandot kan kolla Buffer Hash tabellens integritet, med tillvalet att skriva ut det.

Syntax:
DBCC bhash({print_bufs | no_print}, bucket_limit)

där:
print_bufs – visa alla buffrar (standard) eller
no_print – visa endast buffrar som har problem
bucket_limit – antalet tillåtna buffrar i ett lagringsutrymme (standard = 0)

Ett exempel:


DBCC TRACEON (3604)
DBCC bhash



DBCC Buffer

Det här kommandot används till att skriva ut Buffer headers och sidor ur Buffer Cachen.

Syntax:
dbcc buffer ([dbid|dbnamn] [,objid|objnamn] [,nbufs], [printopt])

där:
dbid|dbnamn – databasID eller databasnamn
objid|objnamn – objektID eller objektnamn
nbufs – antalet buffrar som ska granskas
printopt - utskriftsalternativ, vilka inkluderar:
0 – skriver endast ut Bufferrubriken och Sidorubriken (standard)
1 – skriver ut varje rad separat samt offsettabellen
2 – skriver ut varje rad som en helhet samt offsettabellen

Ett exempel:


DBCC TRACEON (3604)
DBCC buffer(master,'sysobjects')



DBCC Bytes

Det här kommandot används för att dumpa bytes från en specifik adress:

Syntax:
dbcc bytes (startadress, längd)

där:
startadress – Startadressen att dumpa
längd – Antalet bytes som ska dumpas

Ett exempel:


DBCC TRACEON (3604)
DBCC bytes (10000000, 100)



DBCC DBInfo

Kommandot visar DBINFO strukturen för en specifik databas

Syntax:
DBCC DBINFO [(dbnamn)]

där:
dbnamn – är databasens namn

Ett exempel:


DBCC TRACEON (3604)
DBCC DBINFO (master)



DBCC DBTable

Det här kommandot visar innehållet i DBTABLE strukturen.

Syntax:
DBCC DBTABLE ({dbid|dbnamn})

där:
dbid|dbnamn – databasnamn eller databasID

Ett exempel:


DBCC TRACEON (3604)
DBCC DBTABLE (master)


DBTABLE strukturen har en resultatparameter som kallas dbt_open. Den parametern håller koll på hur många användare som är inne i databasen.


DBCC DELETE_ROW

Det här kommandot kan användas till att ta bort ett Index eller en datapost, antingen genom ett sidnummer eller avsättningen på en sida. DBCC delete_row är ett icke-loggat kommando, så du kan ta bort en specifik post utan att det läggs upp i transaktionsloggen. Använd kommandot på egen risk!

Syntax:
DBCC delete_row (dbid|dbnamn, page, delete_by_row, rownum)

där:
dbid|dbnamn – databasID eller databasnamn
page – logiskt sidnummer
delete_by_row – specificera hur du vill ta bort; per rad eller per område
1 – anger att nästa parameter är ett radnummer
0 – anger att nästa parameter är området på en sida
rownum – radnummer eller område

Ett exempel:


SET NOCOUNT ON
GO
USE pubs
GO
DBCC TRACEON (3604)
GO
DECLARE @pgid int
SELECT COUNT(*) FROM titleauthor
SELECT @pgid = first FROM sysindexes
WHERE id = object_id('titleauthor') AND indid = 1
SELECT xactid AS TRAN_ID, op AS LOG_RECORD FROM syslogs
DBCC delete_row (pubs, @pgid, 'row', 1)
SELECT xactid AS TRAN_ID, op AS LOG_RECORD FROM syslogs
SELECT COUNT(*) FROM titleauthor



DBCC DES

Skriver ut innehållet i en specifik DES (descriptor).

Syntax:
DBCC DES [([dbid|dbnamn] [,objid|objnamn])]

där:
dbid|dbnamn - databasID eller databasnamn
objid|objnamn - objektID objektnamn

Ett exempel:


DBCC TRACEON (3604)
DBCC DES



DBCC EXTENTCHAIN

Det här kommandot visar storleksheader information för alla områden som används av ett specifikt objekt.

Syntax:
DBCC extentchain(dbid,objid,indexid,sort={1|0},display={1|0} [,order={1|0}])

där:
dbid - databasID
objid - objektID
indexid - indexID
sort – statusrapport för sorteringsbiten
0 – ta inte med den här informationen
1 – ta med statusrapporten
display – vad som ska rapporteras
0 – visa endast antalet
1 – visa alla områden
order - (tillval) sorteringsalternativ
0 – descending, 1 – ascending

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid int
SELECT @dbid = DB_ID('pubs')
SELECT @objectid = object_id('authors')
DVCC EXTENTCHAIN(@dbid,@objectid,0,0,0,0)



DBCC EXTENTCHECK

Det här kommandot får samma resultat som extentchain, och det analyserar alla områden på allokeringssidor för ett specifikt objekt.

Syntax:
DBCC extentcheck(dbid, objid, indexid, sort = {1|0})

där:
dbid - databasID
objid - objektID
indexid - indexID
sort – statusrapport för sorteringsbiten
0 – ta inte med rapporten
1 – ta med rapporten

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid int
SELECT @dbid = DB_ID('pubs')
SELECT @objectid = object_id('authors')
DBCC EXTENTCHECK(@dbid,@objectid,0,1)



DBCC EXTENTDUMP

Det här kommandot visar en dumpning i ett område.

Syntax:
DBCC extentdump(dbid, page)

där:
dbid – databasID
page – antalet sidor som är kontrollerade av området i fråga

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int
SELECT @dbid = DB_ID('pubs')
DBCC EXTENTDUMP(@dbid, 1)



DBCC EXTENTZAP

Det här kommandot kan användas till att rensa bort alla områden som matchar parametervärdet.

Syntax:
DBCC extentzap(dbid, objid, indexid, sort)

där:
dbid - databasID
objid - objektID
indexid - indexID
sort – statusen på sorteringsbiten

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid int
SELECT @dbid = DB_ID('pubs')
SELECT @objectid = object_id('authors')
DBCC extentzap(@dbid,@objectid,0,0)



DBCC FINDNOTFULLEXTENTS

Det här kommandot visar storleksID av områden som är allokerade till det specifika objektID som inte är fullt. Om ett objektID specificeras så bör du även specificera ett IndexID, för om det bara specificeras ett objektID, så kommer alla tabeller i databasen att visas.

Syntax:
DBCC findnotfullextents(dbid, objid, indexid, sort = {1|0})

där:
dbid - databasID
objid - objektID
indexid - indexID
sort – statuset på sorteringsbiten

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid int
SELECT @dbid = DB_ID('pubs')
SELECT @objectid = object_id('authors')DBCC findnotfullextents(@dbid,@objectid,0,0)



DBCC HELP

DBCC HELP returnerar syntaxinformationen för ett specifikt DBCC uttryck.

Syntax:
DBCC HELP ('dbcc_statement' | @dbcc_statement_var | '?')

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbcc_stmt sysname
SELECT @dbcc_stmt = 'CHECKTABLE'
DBCC HELP (@dbcc_stmt)



DBCC IND

Visar alla sidor i ett Index som används i en specifik tabell.

Syntax:
dbcc ind(dbid|dbname, objid|objname, printopt = {0|1|2})

där:
dbid|dbname – databasID eller databasnamn
objid|objname - objektid eller objektnamn
printopt - utskriftsalternativ
0 – (standard) skriv endast ut buffer- och sidheader
1 – skriv ut sidheaders, siddata i radformat samt offsettabeller
2 – skriv ut sidheaders, oformaterad siddata samt offsettabeller

Ett exempel:


DBCC TRACEON (3604)
DECLARE @obid int
SELECT @obid = object_id('authors')
DBCC ind (pubs, @obid, 1)



DBCC LOCATEINDEXPGS

Det här kommandot skriver ut alla referenser Indexet till den specificerade sidan.

Syntax:
DBCC locateindexpgs(dbid, objid, page, indexid, level)

där:
dbid - databasID
objid - objektID
page – det logiska sidnumret på sidan dit dem sökta Indexreferenserna ska
indexid - indexID
level – nivå inom Indexet för att söka efter referenserna

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid int
SELECT @dbid = DB_ID('pubs')
SELECT @objectid = object_id('authors')
DBCC locateindexpgs(@dbid,@objectid,1,1,0)



DBCC LOCK

Det här kommandot kan användas till att visa låsningskedjor.

Syntax:
DBCC lock

Ett exempel:


DBCC TRACEON (3604)
DBCC LOCK



DBCC LOG

Det här kommandot används till att titta i transaktionsloggen i en specifik databas.

Syntax:
DBCC log ({dbid|dbnamn}, [, type={|0|1|2|3|4}])

där:
dbid | dbnamn – databasID eller databasnamn
type – Vilken typ av utskrift man vill ha, vilket inkluderar:
0 – minimal information (operation, context, transaktionsID)
1 - mer information (plus flaggor, tags, postlängd, beskrivning)
2 – väldigt detaljerad information (plus objektnamn, Indexnamn, SidID, platsID (slotID))
3 – All information om varje operation
4 - All information om varje operation, plus hexadecimala dumpningar av den aktuella transaktionsloggens poster.

som standard så är type = 0

För att titta i ”master” databasens transaktionslogg så kör du följande kommando:

DBCC log (master)


DBCC Page

Du kan använda det här kommandot för att se datasidornas struktur.

Syntax:
DBCC PAGE ({dbid|dbnamn}, sidnum [,utskriftsval] [,cache] [,logical])

där:
dbid|dbnamn – skriv in databasID eller databasnamn
sidnum – skriv in sidnumret för den SQL Server sidan som ska undersökas
utskriftsval – (Tillval) Utskriftsalternativet kan sättas till 0, 1, eller 2

    0 - (Standard) Det här alternativet får DBCC PAGE att endast skriva ut informationen om Sidheadern.
    1 – Det här alternativet får DBCC PAGE att skriva ut informationen om Sidheadern, varje rad av information på sidan samt sidans offsettabell. Varje rad som skrivs ut kommer att separeras från varandra.
    2 – Det här alternativet är precis som det första (1), förutom att det skriver ut alla rader som en helhet hellre än att skriva ut varje rad individuellt. Balansen och headern kommer också att visas upp.

cache – (Tillval) Den här parametern tillåter antingen en 1 eller en 0

    0 – Det här alternativet får DBCC PAGE att hämta sidnumret från hårddisken hellre än att leta efter det i cachen.
    1 – (Standard) Om sidnumret finns i cachen så hämtar det här alternativet hellre sidnumret därifrån, än från bara hårddisken.

logical – (Tillval) Det här parametern är användbar ifall sidnumret som ska hämtas är en virtuell sida istället för en logisk sida. Det kan vara antingen 0 eller 1.

    0 – Används om sidan som ska hämtas har ett virtuellt sidnummer.
    1 – (Standard) Används om sidan som ska hämtas har ett logiskt sidnummer.

Ett exempel:


USE pubsGODBCC TRACEON (3604)
GODECLARE @pgid int
SELECT @pgid = first FROM sysindexes
WHERE id = object_id('titleauthor')
AND indid = 1DBCC PAGE (pubs, @pgid, 1)GO


Det här är resultaten från min dator:
...
DATA:
Offset 32 - 011e9820: 04042000 3137322d 33322d31 31373650 .. .172-32-1176P
011e9830: 53333333 33016400 0000051a 16150f04 S3333.d.........
...


DBCC PGLINKAGE

Det här kommandot kan användas till att visa sidkedjan och till att utföra integritetstest under traversal.

Syntax:
DBCC pglinkage(dbid,start,number,printopt={0|1|2},target,order={1|0})

där:
dbid - databasID
start – Det sidnummer du vill börja med
number – antalet sidor att analysera, eller 0 om målet är specificerat
printopt - utskriftsalternativ
0 – visa endast antalet skannade sidor
1 – visa information om de sista 16 skannade sidorna
2 – visa alla sidnummer som skannas
target – den specifika sidan som vi letar efter
order - traversal sortering
(0 descending, 1 ascending)

Ett exempel:


DBCC TRACEON (3604)
DBCC PGLINKAGE(6,26,0,1,0,1)



DBCC PROCBUF

Det här kommandot hämtar en procedurs Buffer header samt en lagrad procedurs Buffer header, från procedurens cache.

Syntax:
DBCC procbuf([dbid|dbnamn], [objid|objnamn], [nbufs], [printopt = {0|1}])

där:
dbid|dbnamn - databasID eller databasnamn
objid|objnamn – objektID eller objektnamn
nbufs – antalet Buffrar att skriva ut
printopt - utskriftsalternativ
0 – (standard) skriver endast ut procedurens buffer och procedurens header,
1 – skriver ut procedurens buffer, procedurens header och innehållet i Buffern

Ett exempel:


DBCC TRACEON (3604)
DBCC procbuf(master,'sp_help',1,0)



PRTIPAGE

Det här kommandot skriver ut ett utpekat sidnummer till varje rad i ett specifikt Index.

Syntax:
DBCC prtipage(dbid, objid, indexid, indexpage)

där:
dbid - databasID
objid - objektID
indexid - indexID
indexpage – det logiska sidnumret på Indexet som ska dumpas

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid int
SELECT @dbid = DB_ID('master')
SELECT @objectid = object_id('sysobjects')
DBCC prtipage(@dbid,@objectid,1,0)



DBCC PSS

Det här kommandot visar information om de processer som för tillfället är anslutna till Servern.

Syntax:
DBCC pss(suid, spid, printopt = { 1 | 0 })

där:
suid - Serverns användarID
spid - Serverns processID
printopt – utskriftsalternativ
0 standardutskrifter
1 alla öppna DES samt det aktuella sekvensträdet

Ett exempel:


DBCC TRACEON (3604)
DBCC pss



DBCC REBUILDEXTENTS

DBCC rebuildextents bygger om en områdeskedja. Innan du kör det här kommandot så bör du sätta din databas som READ ONLY.

Syntax:
DBCC rebuildextents(dbid, objid, indexid)

där:
dbid - databasID
objid - objektID
indexid - indexID

Ett exempel:


DBCC TRACEON (3604)
DECLARE @dbid int, @objectid intSELECT @dbid = DB_ID('pubs')
SELECT @objectid = object_id('authors')
DBCC rebuildextents(@dbid,@objectid,1)



DBCC RESOURCE

Det här kommandot visar Serverns RESOURCE, PERFMON och DS_CONFIG information.

RESOURCE visar adresser på varierande datastrukturer som används av Servern.
PERFMONstrukturen innehåller master..spt_monitor fältinformation.
DS_CONFIGstrukturen innehåller master..syscurconfigs fältinformation.

Syntax:
DBCC resource

Ett exempel:

DBCC TRACEON (3604)
DBCC resource



DBCC SHOW_BUCKET

Det här kommandot visar Hash Bucket information för ett specificera pageid.

Syntax:
DBCC show_bucket(dbid|dbname, pageid, lookup_type)

där:
dbid|dbname - databasID eller databasnamn
page – det logiska sidnumret på sidan som man letar efter
lookup_type – hur man ska utföra sökningen
1 - Använd hash algoritmen för att leta i det lagringsutrymme där sidan borde finnas
2 – Skanna hela buffer cachen

Ett exempel:

DBCC TRACEON (3604)DBCC show_bucket (pubs, 1, 1)


DBCC TAB

Du kan använda detta odokumenterade kommando till att se över datasidornas struktur (till skillnad från DBCC PAGE, som returnerar information om alla datasidor med information om övervakade tabeller, och inte bara för ett särskilt nummer)

Syntax:
DBCC tab (dbname, objname, printopt={ 0 | 1 | 2 })

där:
dbname - databasnamnet
objname - tabellnamnet
printopt - utskriftsalternativ

    0 – (standard) minimal information (endast sidheaders, det totala antalet sidor i den här tabellen samt det totala antalet dataposter i tabellen)
    1 - mer information (plus en fullständig poststruktur)
    2 – precis som alternativ = 1, fast utan en separering av posterna (full dumpning)


Ett exempel:

DBCC TRACEON (3604)DBCC tab (pubs, 'authors')

Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 567
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies