1. 시스템 프로시저
1) sp_who, sp_who2
sp_who는 SPID별 상태, 로그인, 사용 데이터베이스 및 명령어, 블로킹 정보 등을 보여주는 시스템 저장 프로시저이며, sp_who2는 sp_who보다 더 많은 벙보를 보여준다.
자신의 SPID에 대해서만 결과를 보려면 sp_who2 @@SPID를 실행한다.
2) sp_lock
잠금과 관련된 정보를 보여주는 시스템 저장 프로시저
자신의 잠금만을 보려면 sp_lock @@SPID를 실행한다.
연관된 두개의 SPID에 대한 잠금을 보려면 sp_lock spid1, spid2 를 샐항한다.
3) sp_monitor
SQL Server의 서버 작업량 통계를 보여주는 시스템 저장 프로시저
last_run : sp_monitor가 마지막으로 실행된 시간
current_run : sp_monitor가 이번에 실행된 시간
seconds : last_run, current_run 의 시간차
cpu_busy : 서버 컴퓨터의 CPU가 SQL Server 작업을 수행한 시간(초)
io_busy : SQL Server에서 입력 및 출력 작업을 수행하는 데 걸린 시간(초)
idle : SQL Server가 유휴 상태에 있던 시간(초)
packets_received : SQL Server에서 읽은 입력 패킷 수
packets_sent : SQL Server에서 쓰여진 출력 패킷 수
packets_errors : 패킷을 읽고 쓰면서 SQL Server에서 발생한 오류 수
total_read : SQL Server에서 이루어진 읽기 작업 수
total_write : SQL Server에서 이루어진 쓰기 작업 수
total_errors : 읽고 쓰는 중에 SQL Server에서 발생한 오류 수
connections : 로그인 또는 SQL Server에 시도한 로그인 수
출력값 보는 방법 예) 4250(125)-68% 일경우
4250은 SQL Server가 마지막으로 시작된 후 경과한 초의 수(4250초 동안 사용되었다.
125는 sp_monitor가 마지막으로 실행된후 초과된 초의 수(125초 동안 사용되었다.)
68%는 sp_monitor가 마지막으로 실행된 후 사용시간이 총시간의 69%를 차지 한다는 의미
4) sp_spaceused
데이터베이스 또는 테이블의 각종 공간 사용 정보를 보여주는 시스템 저장 프로시저
5) sp_statistics
테이블에 관한 인덱스 및 통계 목록을 보여주는 시스템 저장 프로시저
6) sp_helpdb
데이터베이스에 관한 정보를 보여주는 시스템 저장 프로시저
2. 시스템 함수
1) @@spid
현재 사용자 프로세스의 서버 프로세스 식별자(ID)를 반환
2) @@cpu_busy
SQL Server가 마지막으로 실행된 후의 CPU작업 시간을 밀리 초 단위로 반환
3) @@connections
SQL Server가 마지막으로 실행된 후의 사용자가 연결을 시도한 횟수(연결된 횟수 포함)를 반환
4) @@error
최근에 실행된 T-SQL 문의 오류 개수를 반환(오류가 없으면 0을 반환)
※ T-SQL문을 실행할 때마다 @@error가 반환되는 값은 초기화 된다.
@error의 반환 값을 로컬 변수에 저장한 후 이를 활용해야 한다.
5) @@procid
현재 저장 프로시저의 식별(ID)를 반환
일반적으로 저장 프로서저 안에서 실행한다.
저장 프로시저 밖에서 실행할 때는 0을 반환
3. T-SQL
1) set statistics io
T-SQL문이 생성한 디스크 입출력 작업량에 대한 정보를 출력
※ set statistics io on 으로 설정해서 출력되는 결과에서 논리적 읽기 수를 우선을 둔다.
2) set statstics time
명령문을 구문 분석, 컴파일 및 실행하는데 소용된 시간을 출력
3) set showplan_text
명령문을 실행하는 대신 텍스트 형식의 실행 계획을 출력
※ set showplan_text on 으로 설정후 명령문을 실행해도 명령문을 실행하지 않는다.
4) set showplan_all
set showplan_text 보다 더 자세한 내용을 출력
※ set showplan_all on 으로 설정후 명령문을 실행해도 명령문을 실행하지 않는다.
5) set statistics profile
set showplan_all 와 다른 점은 명령문을 실제로 실행한다는 것과, Row, Executes 열이 추가된다.