분류 전체보기 1385

Downgrade from SQL Server Ent to Std Edition

Downgrade from SQL Server Ent to Std Edition Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server가 설치 되어 있을 때 불필요한 기능이나 라이선스 문제로 인하여 에디션을 변경 이슈이 있을 때 작업 절차에 대해서 알아 본다. 항상 어떤 작업을 하기 전에 모든 데이터베이스 백업을 하도록 하자. 이때 시스템 DB도 꼭 백업을 할 수 있도록 한다. 백업 후 각 데이터베이스에서 다음의 DMV를 실행 한다. DMV는 엔터프라이즈 기능을 사용하는 지 여부를 알려준다. SELECT * FROM sys.dm_db_persisted_sku_features 기존의 SQL Server버전과 빌드 번호를 확인한다. SQL Server 다운그레레..

트랜잭션 로그 여유 공간 모니터링

트랜잭션 로그 여유 공간 모니터링 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 발생하는 트랜잭션은 모두 트랜잭션 로그에 기록된다. 간혹 트랜잭션 로그 공간이 가득 차서 데이터베이스 운영에 문제가 발생하는 경우가 있다. 다음 스크립트를 사용하여 주기적으로 트랜잭션 로그 공간을 모니터링 하여 안정적인 운영을 할 수 있도록 하자. SELECT name , db.log_reuse_wait_desc , ls.cntr_value AS size_kb , lu.cntr_value AS used_kb , CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT) AS used_percent , CASE WHEN ..

SQL Server가 서비스 격리를 처리하는 방법

SQL Server가 서비스 격리를 처리하는 방법 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에 연결되어 있는 사용자를 볼 때 sys.dm_exec_session을 사용하여 확인 할 수 있다. 예를 들어 나는 SQL Server Agent 서비스 계정을 알고 있다. 하지만 그 로그인으로 모든 연결을 볼 수 는 없다. 이것은 서비스 격리 때문이다. 이 기능은 Windows Vista부터 도입되었다. SQL Server 2008 이전에는 액세스 권한을 부여하기 위해 Domain\Username 또는 ComputerName\Username 방법을 지원하였다. 그렇다면 격리수준은 무엇일까? 모든 Windows 사용자 계정, 보안 그룹 및 컴퓨터 계정은 고..

쿼리 매개변수화 확인하기

쿼리 매개변수화 확인하기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server를 업그레이드 하였는데 성능이 느려졌다? 무슨 일이 발생한 것일까? 쿼리가 느려진 원인과 실행된 쿼리가 매개변수화 되었는지 확인하는 방법에 대해서 알아보자. 이 포스트는 CSS SQL Server Engineers 블로그에 게시된 내용으로 필자가 읽고 이해한 내용을 정리하였다. 번역의 오류나 기술적 오류 가능성을 미리 알려두며 자세한 내용은 원문을 참고 하길 바란다. 우선 이 글을 읽기 전에 매개변수화에 대해서 알아보도록 하자. 매개변수화는 다음 아티클을 참고 한다. 단순 매개 변수화 : http://sqlmvp.kr/140189013252 강제 매개 변수화 : http://sql..

SQL Server에서 Drop 및 Delete 사용자 찾기

SQL Server에서 Drop 및 Delete 사용자 찾기 Version : SQL Server 2005, 2008, 2008R2, 2012 누군가 SQL Server에서 데이터를 삭제 했다? 그런데 누가 명령을 실행 하였는지 아무도 말을 하지 않는다? 트랜잭션 로그를 사용하여 어떤 사용자가 데이터를 삭제하였는지 알아보자. 이번 포스트를 시작하기 전에 지난 포스트를 참고하면 이해하는데 많은 도움이 될 듯 하다. 트랜잭션 로그 읽기 : http://sqlmvp.kr/140202102618 [Delete 문을 실행한 사용자 찾기] 데이터를 삭제한 사용자를 찾기 위해 예제 데이터베이스 및 테이블을 생성한다. --Create DB. USE [master]; GO CREATE DATABASE ReadingDBL..

SQL Server 트랜잭션 로그 읽기

SQL Server 트랜잭션 로그 읽기 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스에서 발생하는 행위는 트랜잭션 로그 라는 곳에 기록된다. 문서화되지 않은 기능 fn_dblog 함수를 사용하여 트랜잭션 로그의 정보를 읽어보자. Fn_dblog는 트랜잭션의 시작 LSN과 종료 LSN을 필요로 한다. NULL은 기본값으로 트랜잭션 로그 파일의 모든 로그 레코드를 반환한다. 실습을 위해 데이터베이스를 생성한다. --Create DB. USE [master]; GO CREATE DATABASE ReadingDBLog; GO -- Create tables. USE ReadingDBLog; GO CREATE TABLE [Location] ( [Sr.No] INT I..

MaxBCPThreads에 따른 BCP 병렬출력

MaxBCPThreads에 따른 BCP 병렬출력 Version : SQL Server 2005, 2008, 2008R2, 2012 BCP 유틸리티(BCP.exe)는 BCP(Bulk Copy Data) API를 사용하는 명령줄 도구이다. BCP는다음과 같은 기능을 수행 할 수 있다. 데이터 파일로 SQL Server 테이블의 데이터를 대량으로 내보낸다. 쿼리의 데이터를 대량으로 내보낸다. SQL server 테이블로 데이터 파일의 데이터를 대량으로 가져온다. 서식 파일을 생성한다. BCP 사용 : http://sqlmvp.kr/140176987081 BCP를 병렬로 처리하기 위해서 MaxBCPThreads를 지정하여 사용하게 된다. MaxBCPThreads를 0이 아닌 값으로 설정 하여 실행 하였을 때 병..

확장이벤트와 dm_os_wait_stats 대기유형 매핑

확장이벤트와 dm_os_wait_stats 대기유형 매핑 Version : SQL Server 2008, 2008R2, 2012 SQL Server 확장이벤트와 dm_os_wait_stats 대기유형의 매핑 관계를 알아본다. 아래 대기유형 목록은 SQL Server 2012 Sp1 Cu6 기반으로 제작 되었다. [확장이벤트] select * from sys.dm_xe_map_values [sys.dm_os_wait_stats] select * from sys.dm_os_wait_stats [매핑 표] wait_type in sys.dm_os_wait_statsmap_value in sys.dm_xe_map_valuesASYNC_NETWORK_IONETWORK_IOBROKER_TASK_STOPSSB_TAS..

장기 트랜잭션 확인 및 경고 설정

장기 트랜잭션 확인 및 경고 설정 Version : SQL Server 2005, 2008, 2008R2, 2012 장기 트랜잭션이 많은 경우 잠재적인 문제(차단/ 잠금)가 발생 할 수 있다. 장기 트랜잭션이 발생하는 경우는 실제 작업이 오래 걸리는 경우도 있지만 사용자가 트랜잭션을 닫지 않아 발생하는 경우도 많다. 따라서 장기 트랜잭션이 있는지 확인하여 알림을 받을 수 있다면 DB를 운영하는데 많은 도움이 될 수 있다. 다음 스크립트는 현재 실행 중인 트랜잭션의 목록을 나타낸다. SELECT * FROM sys.dm_tran_active_transactions dtat INNER JOIN sys.dm_tran_session_transactions dtst ON dtat.transaction_id = d..

SQL 데이터 수집툴 DiagManager 사용법

SQL 데이터 수집툴 DiagManager 사용법 Version : SQL Server 2005, 2008, 2008R2 SQL Server의 문제를 해결하기 위해 사용자 정의 데이터를 수집하는 방법 중 SQL 데이터 수집 툴 DiagManager 사용법에 대해 알아 보자. DiagManager 다운로드 : http://diagmanager.codeplex.com/ 다운로드 받은 파일을 설치하고 실행하면 다음과 같은 UI를 볼 수 있다. 플랫폼 탭에서 수집하려는 서버의 CPU 종류를 선택 한다. SQL Server의 클러스터 인스턴스에서 캡처를 실행할 경우 컴퓨터 이름과 SQL 가상 이름을 지정하는 것이 좋다. 다음 링크를 참고 한다. http://diagmanager.codeplex.com/wikipa..