MSSQL
-
SQL Server에서 MDF 파일의 용량이 모두 찾으면 자동증가 옵션에 따라서, 그 크기데로 증가합니다. 하지만 어떠한 DB가 증가하였는지 알고 싶은경우가 있는데, 이것을 확인하기 위해서 SQL Server에서 걸려있는 Trace 파일을 이용해서 확인 할 수 있습니다. 1. 우선 쿼리 실행창을 켠후 다음의 쿼리를 실행한다. 2. 해당 TRC 파일위치 찾기 실행 SELECT * FROM fn_trace_getinfo(DEFAULT) 위의 쿼리를 실행하면 다음과 같은 항목이 출력된다. 2번 열에 보면 위치가 나오는데 그곳이 바로 TRC파일의 위치와명칭이다. 복사해서 폴더를 열고 붙여넣기를 하면 열린다. 3. 자동증가 확인법 프로파일러를 실행하고 아래 그림의 점선으로 표시된 '속성'을 클릭한다. 이벤트 선택..
MSSQL_DB 자동증가확인SQL Server에서 MDF 파일의 용량이 모두 찾으면 자동증가 옵션에 따라서, 그 크기데로 증가합니다. 하지만 어떠한 DB가 증가하였는지 알고 싶은경우가 있는데, 이것을 확인하기 위해서 SQL Server에서 걸려있는 Trace 파일을 이용해서 확인 할 수 있습니다. 1. 우선 쿼리 실행창을 켠후 다음의 쿼리를 실행한다. 2. 해당 TRC 파일위치 찾기 실행 SELECT * FROM fn_trace_getinfo(DEFAULT) 위의 쿼리를 실행하면 다음과 같은 항목이 출력된다. 2번 열에 보면 위치가 나오는데 그곳이 바로 TRC파일의 위치와명칭이다. 복사해서 폴더를 열고 붙여넣기를 하면 열린다. 3. 자동증가 확인법 프로파일러를 실행하고 아래 그림의 점선으로 표시된 '속성'을 클릭한다. 이벤트 선택..
2015.07.01 -
MS SQL Server 2008 R2 버전 옵티마이저에 대한 포스트 입니다.이전에 쓴글을 네이버 블로그에서 T스토리로 옮겼습니다. MS SQL Server는 사용자가 쿼리를 입력하면 내부적으로 어떤 일이 일어날까? 이번 포스트의 주요 관점은 옵티마이저이므로 간단하게 전체적으로 어떠한 일이 일어나는지 알아 보도록 하자.우선 파싱을 살펴보자 사용자가 쿼리를 실행하면 파싱을 한다. 파싱은 사용자가 정확한 쿼리를 입력했는지 구문을 검사한다. 예를 들어 사용자가 다음과 같은 쿼리를 입력했다고 생각해보자
MSSQL 옵티마이저(optimizer)MS SQL Server 2008 R2 버전 옵티마이저에 대한 포스트 입니다.이전에 쓴글을 네이버 블로그에서 T스토리로 옮겼습니다. MS SQL Server는 사용자가 쿼리를 입력하면 내부적으로 어떤 일이 일어날까? 이번 포스트의 주요 관점은 옵티마이저이므로 간단하게 전체적으로 어떠한 일이 일어나는지 알아 보도록 하자.우선 파싱을 살펴보자 사용자가 쿼리를 실행하면 파싱을 한다. 파싱은 사용자가 정확한 쿼리를 입력했는지 구문을 검사한다. 예를 들어 사용자가 다음과 같은 쿼리를 입력했다고 생각해보자
2015.06.27 -
DBA를 하면서 점검 시 필요한 스크립트를 정리해봤습니다.제가 정리한것과 퍼온글이 있으니 틀린 부분이 있을 수 있으니, 참고만 부탁드립니다. 틀린 부분은 메일로 문의 주시면 수정 하겠습니다 ^^ 내용은 다음과 같습니다.1. 인덱스 조각화 확인 및 리빌딩2. 통계 확인 및 업데이트3. CHECKDB 관련 체크 및 복구 USE [데이터베이스명] GO /* 1. 인덱스 인덱스의 조각화 정도를 확인하고, 조각화가 많이 일어났으면 해당 인덱스 또는 해당 DB의 모든 인덱스를 리빌딩 해줘야 한다. */ /* ===================================================================================================== 인덱스 조각화 확인 ====..
DBA 업무시 필요한 쿼리DBA를 하면서 점검 시 필요한 스크립트를 정리해봤습니다.제가 정리한것과 퍼온글이 있으니 틀린 부분이 있을 수 있으니, 참고만 부탁드립니다. 틀린 부분은 메일로 문의 주시면 수정 하겠습니다 ^^ 내용은 다음과 같습니다.1. 인덱스 조각화 확인 및 리빌딩2. 통계 확인 및 업데이트3. CHECKDB 관련 체크 및 복구 USE [데이터베이스명] GO /* 1. 인덱스 인덱스의 조각화 정도를 확인하고, 조각화가 많이 일어났으면 해당 인덱스 또는 해당 DB의 모든 인덱스를 리빌딩 해줘야 한다. */ /* ===================================================================================================== 인덱스 조각화 확인 ====..
2015.06.04 -
1. 장애 내용 ㉠ 한달에 1번씩 DB명을 변경하는 Job 스케줄러 존재함. DB명이 변경이 안되고 이전 DB명으로 커넥션을 맺어도 안된다는 장애 접수㉡ 확인을 위해서 DB 속성을 보려 하였는데 다음과 같은 메시지 출력 2. 확인 사항 ㉠ Job 스케줄러 정상 작동 여부 확인 (확인 결과 실패함)㉡ DB 상태 확인 SELECT name,state,state_desc FROM SYS.DATABASESWHERE NAME = '201412' 확인 했는데 별달리 특이점이 없는 듯 보였으며, ONLINE 상태 ㉢ 어떠한 프로세스가 점유하고 있는지 확인 SELECT * FROM SYS.sysprocessesWHERE DBID = 15 확인해보니 60번 세션이 뭔가를 잡고 있는듯 하여, 확인 ㉣ 확인 위해서 INPU..
MS SQL Server_952 Error1. 장애 내용 ㉠ 한달에 1번씩 DB명을 변경하는 Job 스케줄러 존재함. DB명이 변경이 안되고 이전 DB명으로 커넥션을 맺어도 안된다는 장애 접수㉡ 확인을 위해서 DB 속성을 보려 하였는데 다음과 같은 메시지 출력 2. 확인 사항 ㉠ Job 스케줄러 정상 작동 여부 확인 (확인 결과 실패함)㉡ DB 상태 확인 SELECT name,state,state_desc FROM SYS.DATABASESWHERE NAME = '201412' 확인 했는데 별달리 특이점이 없는 듯 보였으며, ONLINE 상태 ㉢ 어떠한 프로세스가 점유하고 있는지 확인 SELECT * FROM SYS.sysprocessesWHERE DBID = 15 확인해보니 60번 세션이 뭔가를 잡고 있는듯 하여, 확인 ㉣ 확인 위해서 INPU..
2015.04.09 -
DMV 몇가지 정리..MSDN에 있는 것들을 그대로 퍼왔습니다. 공부하면서 자주 사용하는거 모아 두려고 정리했습니다. 1. sys.dm_exec_sessions (https://msdn.microsoft.com/ko-kr/library/ms176013.aspx)SQL Server에서 인증된 세션당 행 하나를 반환합니다. sys.dm_exec_sessions는 모든 활성 사용자 연결 및 내부 태스크에 대한 정보를 표시하는 서버 범위 뷰입니다. 이러한 정보로는 클라이언트 버전, 클라이언트 프로그램 이름, 클라이언트 로그인 시간, 로그인 사용자, 현재 세션 설정 등이 있습니다. sys.dm_exec_sessions를 사용하여 먼저 현재 시스템 로드를 확인하고 관심 있는 세션을 파악한 다음 다른 동적 관리 뷰나..
MSSQL_DMV 모음(1)DMV 몇가지 정리..MSDN에 있는 것들을 그대로 퍼왔습니다. 공부하면서 자주 사용하는거 모아 두려고 정리했습니다. 1. sys.dm_exec_sessions (https://msdn.microsoft.com/ko-kr/library/ms176013.aspx)SQL Server에서 인증된 세션당 행 하나를 반환합니다. sys.dm_exec_sessions는 모든 활성 사용자 연결 및 내부 태스크에 대한 정보를 표시하는 서버 범위 뷰입니다. 이러한 정보로는 클라이언트 버전, 클라이언트 프로그램 이름, 클라이언트 로그인 시간, 로그인 사용자, 현재 세션 설정 등이 있습니다. sys.dm_exec_sessions를 사용하여 먼저 현재 시스템 로드를 확인하고 관심 있는 세션을 파악한 다음 다른 동적 관리 뷰나..
2015.04.09 -
RESTORE FILELISTONLY 등의 내용을 볼때 해당 내용이 너무 많거나 필요한 정보만 볼때 또는 해당 내용을 로그 테이블등에 저장 해야 하는 경우가 있습니다. 이럴때 이 내용을 테이블에 저장 할 수 있도록 하기 위해서는 다음과 같이 할 수 있습니다. 일반적인 RESTORE FILELISTONLY 구문RESTORE FILELISTONLY FROM DISK ='D:\VB_Share\201503_FG.bak' 다음과 같이 5개의 결과물이 나옵니다. 해당 내용을 테이블에 저장 할때는 다음과 같이 하면 됩니다.예시 쿼리를 보면 쉽게 이해가 되실 겁니다. -- 변수 테이블 DECLARE @TEMP_TBL TABLE ( COL1 VARCHAR(255) ,COL2 VARCHAR(255) ,COL3 VARCH..
MSSQL_쿼리 결과값 테이블에 넣기RESTORE FILELISTONLY 등의 내용을 볼때 해당 내용이 너무 많거나 필요한 정보만 볼때 또는 해당 내용을 로그 테이블등에 저장 해야 하는 경우가 있습니다. 이럴때 이 내용을 테이블에 저장 할 수 있도록 하기 위해서는 다음과 같이 할 수 있습니다. 일반적인 RESTORE FILELISTONLY 구문RESTORE FILELISTONLY FROM DISK ='D:\VB_Share\201503_FG.bak' 다음과 같이 5개의 결과물이 나옵니다. 해당 내용을 테이블에 저장 할때는 다음과 같이 하면 됩니다.예시 쿼리를 보면 쉽게 이해가 되실 겁니다. -- 변수 테이블 DECLARE @TEMP_TBL TABLE ( COL1 VARCHAR(255) ,COL2 VARCHAR(255) ,COL3 VARCH..
2015.04.09 -
가끔 DB내의 모든 테이블을 생성,삭제 스크립트를 추출해야 하는 경우가 있습니다.테이블 및 SP에 대한 스크립트 추출은 아래의 그림처럼 하면 간단히 나오지만 인덱스의 경우는 옵션을 체크해야 합니다. 인덱스 이외에도 뷰,사용자 등 여러가지 개체를 스크립트 형식으로 추출 가능 합니다.이번 포스트에서는 테이블에 있는 인덱스 및 테이블을 추출 하는 것을 테스트 해봤습니다. 옵션은 다음과 같이 설정이 가능 합니다. 스크립트를 추출 할 DB선택 -> 태스크(T) -> 스크립트 생성(E) 다음의 페이지가 나오면 다음을 클릭 합니다. 다음 화면에서 "특정 데이터베이스 개체 선택(O)"을 클릭 합니다.테스트이므로, 테이블에 있는 인덱스 생성이 목적이므로, 테이블쪽만 선택하겠습니다. 테이블을 체크하고 (만약 특정 테이블..
MSSQL_DB내의 개체 생성 스크립트 생성가끔 DB내의 모든 테이블을 생성,삭제 스크립트를 추출해야 하는 경우가 있습니다.테이블 및 SP에 대한 스크립트 추출은 아래의 그림처럼 하면 간단히 나오지만 인덱스의 경우는 옵션을 체크해야 합니다. 인덱스 이외에도 뷰,사용자 등 여러가지 개체를 스크립트 형식으로 추출 가능 합니다.이번 포스트에서는 테이블에 있는 인덱스 및 테이블을 추출 하는 것을 테스트 해봤습니다. 옵션은 다음과 같이 설정이 가능 합니다. 스크립트를 추출 할 DB선택 -> 태스크(T) -> 스크립트 생성(E) 다음의 페이지가 나오면 다음을 클릭 합니다. 다음 화면에서 "특정 데이터베이스 개체 선택(O)"을 클릭 합니다.테스트이므로, 테이블에 있는 인덱스 생성이 목적이므로, 테이블쪽만 선택하겠습니다. 테이블을 체크하고 (만약 특정 테이블..
2015.04.09 -
필자는 항상 여러개의 인스턴스를 쓰면서도 인스턴스의 개념을 정확하게 알지 못했다.내가 스스로 정의하길 한대의 서버에 여러개의 DB가 있는 것으로 알고 있었다.Java배울때 붕어빵틀이 클래스면 인스턴스는 붕어빵이라고 배웠다. 책에 내용에 보니 비슷하다고 한다. SQL Server 프로그램(붕어빵틀)는 1개지만 , 컴퓨터에서 구동되는 SQL Server인스턴스(붕어빵)은 여러개 일수 있다. 물론 이말이 꼭 같은 붕어빵틀(복사)로 붕어빵을 찍어내는(붙여넣기) 개념이 아니다. 쉽게 말해서 하나의 서버에 여러개의 SQL Server를 설치하여 사용한다고 볼 수 있다.SQL Server 는 멀티 인스턴스를 지원하며 Enterprise 에디션의 경우 50개의 인스턴스까지 지원한다. 여기서 중요한건 처음에 설치하는 S..
MSSQL_인스턴스필자는 항상 여러개의 인스턴스를 쓰면서도 인스턴스의 개념을 정확하게 알지 못했다.내가 스스로 정의하길 한대의 서버에 여러개의 DB가 있는 것으로 알고 있었다.Java배울때 붕어빵틀이 클래스면 인스턴스는 붕어빵이라고 배웠다. 책에 내용에 보니 비슷하다고 한다. SQL Server 프로그램(붕어빵틀)는 1개지만 , 컴퓨터에서 구동되는 SQL Server인스턴스(붕어빵)은 여러개 일수 있다. 물론 이말이 꼭 같은 붕어빵틀(복사)로 붕어빵을 찍어내는(붙여넣기) 개념이 아니다. 쉽게 말해서 하나의 서버에 여러개의 SQL Server를 설치하여 사용한다고 볼 수 있다.SQL Server 는 멀티 인스턴스를 지원하며 Enterprise 에디션의 경우 50개의 인스턴스까지 지원한다. 여기서 중요한건 처음에 설치하는 S..
2015.04.06 -
MSSQL에는 기본적으로 생성되는 시스템 데이터베이스가 있습니다. 이중에서 가장 기본적인 몇가지를 보면 다음과 같습니다. ① master 데이터베이스② model 데이터베이스③ msdb 데이터베이스④ tempdb 데이터베이스 순차적으로 살펴 보겠습니다. ① master 데이터베이스 SQL Server에서 가장 중요한 데이터베이스이다. 만약 이 데이터베이스에 문제가 생긴다면 SQL Server 구동이 안될수도 있습니다. master 데이터베이스에는 서버에 설치된 모든 데이터베이스 상의 정보를 유지하며 데이터베이스의 생성 , 계정 관리 및 구성 , 디스크 공간, 시스템 전체의 구성 설정 정보 , 계정정보 , 사용자 데이터베이스에 대한 정보 등의 중요한 목록이 들어있다. ※이런한 이유로 master DB는 백..
MSSQL_System DatabaseMSSQL에는 기본적으로 생성되는 시스템 데이터베이스가 있습니다. 이중에서 가장 기본적인 몇가지를 보면 다음과 같습니다. ① master 데이터베이스② model 데이터베이스③ msdb 데이터베이스④ tempdb 데이터베이스 순차적으로 살펴 보겠습니다. ① master 데이터베이스 SQL Server에서 가장 중요한 데이터베이스이다. 만약 이 데이터베이스에 문제가 생긴다면 SQL Server 구동이 안될수도 있습니다. master 데이터베이스에는 서버에 설치된 모든 데이터베이스 상의 정보를 유지하며 데이터베이스의 생성 , 계정 관리 및 구성 , 디스크 공간, 시스템 전체의 구성 설정 정보 , 계정정보 , 사용자 데이터베이스에 대한 정보 등의 중요한 목록이 들어있다. ※이런한 이유로 master DB는 백..
2015.04.06