반응형
반응형

언젠가 SQL Server 2000에 대하여 다음과 같은 질문을 받은 적이 있습니다. DBCC 명령어를 실행하였는데 실행했다는 메시지만 나오니까 조금 황당했었나 봅니다. SQL Server 2005에서는 확실하게 결과를 제공하네요. 기뻐하세요. ㅋㅋㅋ


[질문]
DBCC SHOWCONTIG 를 실행했는데 결과가 나오지 않는데 이유가 뭘까요?
테이블에 인덱스가 없어서인가요?

[답변]
테이블에 데이터가 없으면 결과가 나오지 않습니다. 인덱스가 있건 없건 상관없이 데이터가 없으면 결과 행이 반환되지 않고 데이터가 한 건이라도 있으면 결과 행들이 반환됩니다.

SQL Server 2000에서는 다음과 같이 테이블에 행이 한 건도 없으면 "DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오." 라는 메시지만 반환되고 결과 행은 반환되지 않았습니다.

USE tempdb

GO

 

CREATE TABLE t1 (c1 int PRIMARY KEY)

GO

 

DBCC SHOWCONTIG ('t1')

GO

/*

DBCC 실행이완료되었습니다. DBCC에서오류메시지를출력하면시스템관리자에게문의하십시오.

*/

 

 

 

SQL Server 2005에서는테이블에데이터가없어도결과행이반환되는군요.

이제헷갈리는분들이줄어들겠네요. ^ ^

 

 

USE tempdb

GO

 

CREATE TABLE t1 (c1 int PRIMARY KEY)

GO

 

DBCC SHOWCONTIG ('t1')

GO

/* 결과

 

DBCC SHOWCONTIG() 't1' 테이블을검색하는중...

테이블: 't1'(165575628); 인덱스ID: 1, 데이터베이스ID: 2

TABLE 수준검색을수행했습니다.

- 검색한페이지................................: 0

- 검색한익스텐트..............................: 0

- 익스텐트스위치..............................: 0

- 익스텐트당평균페이지수........................: 0.0

- 검색밀도[최적:실제].......: 100.00% [0:0]

- 논리검색조각화상태..................: 0.00%

- 익스텐트검색조각화상태...................: 0.00%

- 페이지당사용가능한평균바이트수.....................: 0.0

- 평균페이지밀도(전체).....................: 0.00%

DBCC 실행이완료되었습니다. DBCC에서오류메시지를출력하면시스템관리자에게문의하십시오.

 

*/

 

반응형
반응형

다음은 DBA 알고 있어야 하는 주요 DBCC 명령어입니다. 자세한 내용은 SQL Server 온라인 설명서를 참조 바랍니다.

 

DBCC 명령어

설명

DBCC SHOWCONTIG

지정한 테이블의 데이터와 인덱스에 대한 조각화 정보를 제공합니다. 기능은 다음 버전에서 제거될 예정이므로 대신 sys.dm_db_index_physical_stats 사용하는 것을 권고합니다.

DBCC SHRINKDATABASE

지정한 데이터베이스의 데이터 파일의 크기를 축소합니다.

DBCC SHRINKFILE

지정한 데이터베이스에서 지정한 파일(데이터 파일이나 로그 파일) 크기를 축소합니다.

DBCC SQLPERF

모든 데이터베이스의 트랜잭션 로그 공간에 관한 통계를 제공합니다.

DBCC TRACEON

지정한 추적 플래그를 활성화합니다.

DBCC TRACEOFF

지정한 추적 플래그를 해제합니다.

DBCC TRACESTATUS

추적 플래그의 상태 정보를 제공합니다.

DBCC UPDATEUSAGE

카탈로그 뷰의 부정확한 페이지와 개수를 보고하고 수정합니다. 페이지와 개수가 부정확하면 sp_spaceused 시스템 저장 프로시저에서 반환하는 공간 사용 정보가 정확하지 않게 됩니다. SQL Server 2005 에서는 항상 정확한 값이 유지 관리되기 때문에 SQL Server 2005 에서 만든 데이터베이스에서는 개수가 부정확한 경우가 없지만 SQL Server 2005 업그레이드한 데이터베이스에는 올바르지 않은 개수가 포함될 있으므로 SQL Server 2005 업그레이드한 다음에는 DBCC UPDATEUSAGE 실행하여 올바르지 않은 개수를 수정하는 것이 좋습니다.

DBCC USEROPTIONS

현재의 연결에 설정되어 있는 SET 옵션 정보를 제공합니다.

반응형
반응형

다음은 DBA 알고 있어야 하는 주요 DBCC 명령어입니다. 자세한 내용은 SQL Server 온라인 설명서를 참조 바랍니다.

 

DBCC 명령어

설명

DBCC FREESESSIONCACHE

분산 쿼리에서 Microsoft SQL Server 인스턴스에 대해 사용한 분산 쿼리 연결 캐시를 플러시합니다.

DBCC FREESYSTEMCACHE

모든 캐시의 사용하지 않는 캐시 항목을 모두 해제합니다. SQL Server 2005 데이터베이스 엔진은 현재 항목에 필요한 메모리 확보를 위해 사용하지 않는 캐시 항목을 백그라운드에서 미리 정리합니다. 하지만 명령을 사용해 사용하지 않는 항목을 모든 캐시에서 직접 제거할 있습니다.

DBCC HELP

지정한 DBCC 명령의 구문 정보를 제공합니다.

DBCC INDEXDEFRAG

지정된 테이블 또는 뷰의 인덱스를 조각 모음합니다.

기능은 다음 버전에서 제거될 예정이므로, 명령어대신 ALTER INDEX 사용하는 것을 권고합니다..

DBCC INPUTBUFFER

클라이언트가 Microsoft SQL Server 2005 인스턴스로 마지막으로 전송한 SQL 문을 반환합니다.

DBCC OPENTRAN

지정한 데이터베이스에서 가장 오래된 활성 트랜잭션과 가장 오래된 분산 비분산 복제 트랜잭션에 대한 정보를 표시합니다. 활성 트랜잭션이 있거나 데이터베이스에 복제 정보가 있는 경우에만 결과가 반환됩니다.

DBCC OUTPUTBUFFER

지정한 session_id 현재 출력 버퍼를 16진수와 ASCII 형식으로 반환합니다.

DBCC PINTABLE

제거된 기능입니다. 오류 메시지는 반환하지 않지만 실제로는 효력이 없습니다. 마찬가지로 DBCC UNPINTABLE 제거되었습니다.

DBCC PROCCACHE

프로시저 캐시에 대한 정보를 테이블 형식으로 반환합니다.

DBCC SHOW_STATISTICS

지정한 테이블에서 특정 대상에 대한 현재 배포 통계를 제공합니다.

반응형
반응형

다음은 DBA 알고 있어야 하는 주요 DBCC 명령어입니다. 자세한 내용은 SQL Server 온라인 설명서를 참조 바랍니다.

 

DBCC 명령어

설명

DBCC CHECKALLOC

지정된 데이터베이스에 대한 디스크 공간 할당 구조의 일관성을 검사합니다.

DBCC CHECKCATALOG

지정한 데이터베이스 내의 카탈로그 일관성을 검사합니다.

DBCC CHECKCONSTRAINTS

현재 데이터베이스의 지정한 테이블에서 특정 제약 조건이나 모든 제약 조건의 무결성을 검사합니다.

DBCC CHECKDB

현재 데이터베이스에 있는 모든 테이블의 할당과 구조적 무결성을 검사합니다.

DBCC CHECKFILEGROUP

지정한 파일 그룹에서 현재 데이터베이스에 있는 모든 테이블의 할당과 구조적 무결성을 검사합니다.

DBCC CHECKIDENT

지정한 테이블의 현재 ID 값을 검사하고 필요에 따라 변경합니다.

DBCC CHECKTABLE

특정 테이블 또는 특정 인덱싱된 뷰를 구성하는 모든 페이지 구조의 무결성을 검사합니다.

DBCC DBREINDEX

지정한 데이터베이스의 테이블에 대해 하나 이상의 인덱스를 다시 작성합니다. 그렇지만 기능은 다음 버전에서 제거될 예정이므로 ALTER INDEX 사용하는 것을 권고합니다.

DBCC DROPCLEANBUFFERS

버퍼 풀에서 버퍼를 모두 제거하는 명령어입니다. DBCC DROPCLEANBUFFERS 사용하면 서버를 종료하고 다시 시작하지 않아도 완전히 버퍼 캐시를 사용하여 쿼리를 테스트할 있습니다. 성능 튜닝 테스트에 활용할 있습니다.

DBCC FREEPROCCACHE

프로시저 캐시를 비우는 명령어입니다.

반응형

+ Recent posts

반응형