SQL Server/SQL Server Tip 662

SSMS 최근 사용한 파일에 대한 설정 변경

SSMS 최근 사용한 파일에 대한 설정 변경 Version : SQL Server 2005, 2008, 2008R2 SSMS에서 최근 사용판한 파일을 조회하면 다음과 같이 10개(디폴트)의 사용된 파일이 나타난다. SSMS의 옵션을 통하여 최근 사용된 파일에 대한 설정을 변경하여 보자. SSMS에서 [도구]-[옵션]을 선택 한다. [옵션]창이 나타나면 [일반]탭에서 [최근 사용 목록에 N개 파일 표시]에서 사용자가 원하는 만큼의 개수를 설정 한다. 실습에서는 최근 파일 개수를 4로 지정하였다. SSMS에서 [파일]-[최근 사용한 파일]을 선택하면 다음과 같이 사용자가 설정한 4개의 목록이 나타남을 확인 할 수 있다. 최근 설정 파일을 15로 변경하여 보자. 최근 사용한 파일의 목록이 15개가 나타남을 확..

SSMS 상위 행 선택 및 수정 행 변경

SSMS 상위 행 선택 및 수정 행 변경 Version : SQL Server 2008, 2008R2 테이블에 어떤 데이터가 들어 있는지 확인 하는 방법에는 직접 쿼리문을 실행하는 방법과 SSMS를 이용하는 방법이 있다. SSMS에서 조회하려는 행의 개수를 수정 하여 보자. 다음과 같이 SSMS를 이용하는 방법에는 디폴트 값이 상위 1000개행 조회 또는 상위 200개 행 편집만 가능하다. 상위 1000개 선택을 선택 하였을 시 상위 1000개의 행을 반환하여 보여 준다. 디폴트 값을 수정하는 방법을 알아 보자. [도구]-[옵션]을 선택 한다. [옵션] 창에서 [SQL Server 탐색기] – [명령]에서 [테이블 및 뷰 옵션]에서 [상위개 행 선택 명령의 값], [상위개 행 편집 명령의 값]을 수정한다..

SSMS에서 변경 스크립트 자동 생성

SSMS에서 변경 스크립트 자동 생성 Version : SQL Server 2005, 2008, 2008R2 SSMS 툴에서 디자이너를 사용하여 테이블을 생성하거나 컬럼을 수정하였을 때 배포는 어떻게 할까? 다음 도구 옵션을 선택하여 테이블 생성 또는 변경시 스크립트로 저장하도록 하자. SSMS를 실행하여 [도구]-[옵션]을 선택한다. [옵션]창이 나타나면 [Designers] –[테이블 및 데이터베이스 디자이너]에서 [변경 스트립트 자동 생성]을 선택 한다. SSMS에서 테이블을 선택하여 마우스 오른쪽을 클릭하여 [디자인]을 실행 한다. [Col_2]라는 컬럼을 추가하고 저장한다. 다음과 같이 [변경 스크립트 저장] 창이 나타난다. 저장하려면 [예]를 선택하고 저장하지 않으려면 [아니오]를 선택 한다...

SSMS 명령 단축키 설정

SSMS 명령 단축키 설정 Version : 2000, 2005, 2008, 2008R2 SQL Server Management Studio에는 많은 숨겨진 기능이 있다. 오늘은 특정 저장 프로시저나 자주 사용하는 명령어를 바로가기 키에 저장하여 사용하는 방법을 알아 본다. SSMS에서는 기본적으로 Alt+F1(sp_help), Ctrl+1(sp_who), Ctrl+2(sp_lock)와 같은 바로가기 키를 제공한다. 이제 사용자가 필요한 바로가기 키를 등록 해보자. 오늘 예제로 사용할 코드는 업무 환경에서 빈번히 사용하는 Select top 10 * from Tbl_X 구문이다. (데이터 조회이전에 어떤 데이터가 있는지 가장 많이 사용하는 듯 하다.) SSMS를 실행하여 [도구] –[옵션]을 선택 한다...

Min / Max Server Memory 설정

Min / Max Server Memory 설정 SQL Server서버는 메모리가 필요할 때 물리적인 메모리를 할당하여 쓰다가 윈도우 또는 다른 어플리케이션에서 메모리를 필요로 할 경우 자신이 사용하지 않는 메모리를 반환하는 구조이다. (SQL Server 2005 이상) 하지만 SQL Server가 메모리를 사용하고 있을 때 윈도우나 기타 어플리케이션에 의해 메모리를 뺏기는 현상이 발생 할 수도 있다. 이를 방지 하기 위하여 [Min / Max 메모리] 설정과 [락 페이지 인 메모리] 설정을 해야 한다. 이번에는 Min / Max 메모리 설정에 관해서 알아 보도록 한다. SSMS를 활용한 Min / Max Memory 설정. SSMS의 개체 탐색기에서 데이터베이스를 선택. 마우스 오른쪽을 클릭하여 [속..

Tempdb 에러

Tempdb 에러 Tempdb 디바이스가 사라 졌거나? 여유 디스크의 공간이 tempdb 보다 작거나? 설정된 Tempdb 경로가 틀리거나? 할 때 SQL Server가 정상적으로 시작이 되지 않는다. (위 상황 외에 매우 많은 여러 가지 상황이 들이 존재 한다.) 이럴 때 어떻게 해야 할까? 디스크가 부족한 상황을 만들기 위하여 USB 메모리를 이용하여 매우 적은 공간만 남겨 두도록 한다. 현재의 TEMPDB의 파일 위치 및 디스크 크기등 정보를 확인 한다. 현재 C 드라이브에 위치해 있으며 21 메가를 사용 한다. SP_HELPDB TEMPDB GO 다음 명령문을 이용하여 TEMPDB의 파일 위치를 변경 하자. 경로를 변경하고 SP_HELPDB 명령문을 사용하여 확인해 보면 경로는 변경되어 있지만 실..

SQL Server ErrorLog에 백업 로그 남지기 않기

SQL Server ErrorLog에 백업 로그 남지기 않기 SQL Server에 문제가 발생하였을 때 또는 수시로 ErrorLog를 확인하여 시스템에 문제가 없는지 확인 한다. 이때 가장 많이 보이는 에러가 있다. [Database backed up] 로그. 즉 데이터베이스를 백업할 때 남기는 로그이다. 정상적으로 실행되더라도 로그를 남기므로 정작 확인하여야 할 로그를 찾는데 어려움이 있다. 옵션을 사용하여 백업시 로그를 남기지 않도록 하자! - 전체 스크립트 -- 백업진행 BACKUP DATABASE SW_TEST TO DISK = 'D:\BACKUP\SW_TEST.BAK' GO -- 정상적으로로그가남는지확인. EXEC SP_READERRORLOG GO -- 로그를기록하지않도록옵션적용 DBCC TRA..

SQL Server의 Errorlog는 어디에 저장 될까?

SQL Server의 Errorlog는 어디에 저장 될까? 해외 여러 서비스를 담당하고 있는 나의 질문 중 하나는 "ErrorLog 폴더는 어디인가요?" 이다. 보통은 디폴트 설치되면 경로가 동일하다. 하지만 예외는 있는 법! SSMS에서 쿼리를 이용하여 저장 폴더를 확인하자. 아래 쿼리를 입력하면 Errorlog의 저장 폴더 위치가 나타난다. SELECT SERVERPROPERTY('ERRORLOGFILENAME') GO ErrorLog 폴더에는 덤프파일도 저장되므로 유용하게 사용할 수 있다. SQL Server 2005의 기본 폴더 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG SQL Server 2008의 기본 폴더 C:\Program Files..

통계(Statistics)

통계(Statistics) 검색 조건이 주어질 때 해당 컬럼으로 구성되는 인덱스를 사용할지 여부를 옵티마이저가 판단의 근거로 활용하는 것이 통계이다. 통계는 데이터가 있는 컬럼에 대해 인덱스가 만들어질 때 이 컬럼 값의 히스토그램 및 관련정보를 이용하여 만들어 진다. Sysindex 테이블의 image형식의 statblog컬럼에 통계정보가 저장된다. SELECT * FROM SYSINDEXES 데이터베이스 옵션의 auto create statistics와 auto update statistics는 모든 데이터베이스에 대해 자동으로 ture로 설정되며 이 옵션들이 설정되어 있으면 인덱스뿐만 아니라 인덱스가 없는 컬럼에 대해서도 필요할 경우 자동으로 통계가 만들어 지고 일정 비율(전체행의 약20%)의 데이터..

활성 트랜잭션 찾기

활성 트랜잭션 찾기 현재 활성되어 있는 트랜잭션에서 오래된 트랜잭션은 어떤 것이 있을가? 그리고 누가 이 트랜잭션을 발생 시켰을까? 다음 스크립트를 이용해서 찾아 보도록 합니다. SELECT A.SESSION_ID, DATEDIFF(MINUTE, B.LAST_REQUEST_END_TIME, GETDATE()) AS [LOCKING MINUTS], B.LOGIN_TIME, B.HOST_NAME, B.PROGRAM_NAME, B.CLIENT_INTERFACE_NAME, B.LOGIN_NAME, B.STATUS, B.LAST_REQUEST_START_TIME, B.LAST_REQUEST_END_TIME, TEXT FROM SYS.DM_TRAN_SESSION_TRANSACTIONS AS A INNER JOIN ..