mssql에서 T-SQL을 사용할때 mssql의 현재 정보가 필요할때가 있습니다. 버전 정보라든지 현재 lock에 걸려있는 유저 정보라던지 아니면 중첩 트랜젝션중에 현재 트랜잭션이 몇번 중첩 되어 있는가 라던지 등등등...
이럴때 간단하게 현재 SQL SERVER 의 정보를 알 수 있게 해주는 아이들이 있습니다
이름하여,,,,, [전역 변수] 이죠..^^
오늘은 이 전역 변수들중에 제가 자주 쓰는 아이들의 소개와 나머지 전역 변수들 중에는 어떤것을이 있는지에 대해서 알아 보겠습니다.
1. @@ERROR (사용자 접속에대해 시스템이 발생시킨 마지막 에러 번호 )
먼저 @@ERROR 입니다. SQL 로 프로그래밍 할때 예외 처리는 기본이겠죠. 그렇게에러가 났을때 에러 정보를 담고있는 아이 입니다. 저에게 있어서 빈도 순위로는 1위 인거 같네요...^^
2. @@TRANSCOUNT ( 현재 사용자에의해 활성화된 트랜젝션의 중첩 수 )
긴 쿼리문을 작성할때 중첩된 트랜잭션으로 작성할때 요긴하게 사용됩니다.
begin tran 명령으로 1씩 증가하고,
commit 명령으로 1씩 감소하고,
rollback 명령으로 0이 되어버립니다.(전체 롤백이죠)
3. @@SPID ( 현재 프로세스의 서버 프로세스 ID )
서버에 돌고있는프로세서 ID를 보여줍니다. 데드락 현상이나 지연등의 현상이 발생했을때 가끔 들어가서 확인해 보는게 좋죠.
4. @@VERSION ( SQL서버의 날짜와 버젼번호 )
가끔 서버의 버전정보가 필요합니다. 정확한 정보를 알고 싶을때 이 쿼리를 날려보시면 이 전역변수를 통해 알아보시면 됩니다.
그리고 MS내부적인 버전 정보를 알고 싶으시다면
@@MICROSOFTVERSION ( 내부적으로 사용중인 서버의 버전 ) 으로 알아보시면 됩니다.
5. @@FETCH_STATUS ( 커서 FETCH명령의 상태 )
현재 커서의 FETCH가 어떤 상태인가를 사용하는 전역변수 입니다. 커서를 사용할때는 가끔 유용하게 사용되죠.
6. @@ROWCOUNT ( 현재 쿼리문에 의해 영향받은 행의 개수 )
이건 제대로된 테이블에서는 불필요한 전역변수일것입니다. 가끔 주키설정이 없는 테이블에 완벽하게 같은 데이터가 들어가 있을때 바로 이 전역변수 값을 변경함으로써 중복데이터중 원하는 레코드만 삭제하는 것이 가능해지죠. 막막할때 사용하면 쵝오입니다. ^^
7. @@DBTS ( 데이타베이스의 현재 timestamp자료형의 값 )
레코드 변경이 취득시첨과 틀린가를 물어볼때 사용되는 timestamp 값의 자료형을알아보는 전역변수 입니다.
거의 신경쓰고 작업하는 일은 없지만 열어보면 신기한 형태입니다..^^
이상이 제가 자주사용하는 MSSQL 에서의 전역 변수 였습니다. 그리고 그 밖에도 여러가지 정보를 담고 있는 전역변수들이 있는데 밑에 나열 하도록 하겠습니다.
@@CONNECTIONS SQL서버가 시작된 후 로그인 시도를 한 횟수
@@CPU_BUSY SQL서버가 시작된 후 서버가 사용한 CPU시간
@@CURSOR_ROWS 현재 열린커서의 행의 개수
@@IDENTITY 현재 IDENTITY값
@@IDLE SQL서버가 시작된 후의 IDLE time
@@IO_BUSY SQL서버가 입출력 작업에 사용한 시간
@@LANGID 현재 사용되는 언어의 ID
@@LANGUAGE 현재 사용되는 언어
@@MAX_CONNECTIONS 동시에 SQL서버에 접속할 수 있는 연결최대치
@@MAX_PRECISION decimal, numeric자료형의 정밀도
@@NESTLEVEL 현재 실행중인 트리거의 중첩레벨
@@OPTIONS 질의 처리 SET 옵션의 현재 값
@@PACK_RECEIVED SQL서버가 시작된 후 받은 패킷의 수
@@PACK_SENT SQL서버가 시작된 후 보낸 패킷의 수
@@PACKET_ERRORS SQL서버가 시작된 후 주고 받은 패킷의 오류 수
@@PROCID 실행중인 저장 프로시져의 ID
@@SERVERNAME 서버의 이름
@@SERVICENAME 서비스의 이름
@@SPID 현재 프로세스의 프로세스 ID
@@TEXTSIZE SELECT가 돌려준 데이터의 바이트수
@@TIMETICKS 틱 당 마이크로 초수
@@TOTAL_ERRORS SQL서버가 시작된 후 읽기와 쓰기 오류 수
@@TOTAL_READ SQL서버가 시작된 후 디스크 검색의 횟수
@@TOTAL_WRITE SQL서버가 시작된 후 디스크 수정의 횟수
'SQL > 도움말 팁들!' 카테고리의 다른 글
Sql Server 2000 에서 사용자 로그인계정 정보 가져오는 SP - sp_help_revlogin (0) | 2011.12.10 |
---|---|
[mssql] 복제(Replication) 구성시 고려 할 점 - Distribution Cleanup에 관하여 (0) | 2011.11.30 |
SQL Server 메모리 부족현상에 대한 대처 (0) | 2011.10.25 |
대용량 INSERT .. SELECT 작업 중 중지했을 때 대처 방안 (0) | 2011.10.24 |
테이블 row count 빠르게 계산하는 방법 (0) | 2011.10.18 |