SQL Server/SQL Server Tip 663

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - Preparing SQL Statements

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 Preparing SQL Statements Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 관계형 엔진에서는 SQL 문을 실행하기 전에 SQL 명령을 준비할 수 있는 기능을 제공한다. 응용 프로그램에서 SQL문을 여러 번 실행해야 하는 경우에는 데이터베이스 API를 사용하여 다음을 수행 할 수 있다. 프리페어드 쿼리를 한 번 실행한다. 이렇게 하면 SQL문이 실행 계획으로 컴파일 된다. 첫 번째 쿼리 실행 이후 프리페어드 쿼리문을 실행 할 때마다 미리 컴파일된 실행 계획을 사용한다. 이렇게 하면 쿼리를 실행 할 때마다 SQL 문을 다시 컴파일할 필요가 없다. 프리페어드 쿼리 실행은..

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 – 강제 매개 변수화

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 강제 매개 변수화 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스의 모든 SELECT, INSERT, UPDATE, DELETE 문이 특정 제한에 따라 매개 변수화되도록 지정하여 SQL Server의 기본 단순 매개 변수화 동작을 무시 할 수 있다. ALTER DATABASE 문에서 PARAMETERIZATION FORCED로 설정하면 강제 매개 변수화를 설정 할 수 있다. --강제 매개변수화 적용 ALTER DATABASE SW_TEST SET PARAMETERIZATION FORCED GO --단순 매개변수화 적용 ALTER DATABASE SW_TEST SET PARAMETERIZAT..

Event log 기록 실패로 인한 SQL Agent Service 시작 실패

Event log 기록 실패로 인한 SQL Agent Service 시작 실패 SQL Server 2008 R2 Windows Server [문제 발생] SQL Server Agent Service 시작 시 종료되는 현상. (서비스 시작이 실패됨) SQL Server Agent Errorlog 내용. [241] 시작 오류: 오류 보고 시스템을 초기화할 수 없습니다(원인: EventLog 서비스가 시작되지 않았습니다.). [098] SQLServerAgent이(가) 종료됨(정상적으로) [원인] SQL Server Agent 시작 시 윈도우 이벤트로그파일에 오류, 경고, 정보를 로깅하는 API를 호출하는데 이때 호출이 실패하는 경우 초기화 프로세스가 정상적으로 실행하지 못해 SQL Server Agent 서..

TCP Provider: The semaphore timeout period has expired

TCP Provider: The semaphore timeout period has expired SQL Server 2012 Windows Server 2012R2 (Amazon VM) [문제 발생] 링크드 서버를 사용하여 데이터를 가져오는 시스템에서 비정기적으로 다음과 같은 에러가 발생 Message Executed as user: NT SERVICE\SQLSERVERAGENT. TCP Provider: The semaphore timeout period has expired. [SQLSTATE 07008] (Error 121). The step failed. [원인] 네트워크 속성의 TCP Chimney offload 설정이 Enabled로 설정되어 대용량의 데이터를 전송할 때 네트워크의 부하로 문..

SQL Server 연결 실패

SQL Server 연결 실패 - Version : Windows, SQL Server, SQL Server [문제 발생] 어플리케이션에서 SQL Server 연결 실패가 발생 연결 실패가 발생한 패턴이 없음. SQL Error 로그 확인 결과 17054 및 Windows 1717 로그 기록. This instance of SQL Server has been using a process ID of 832 since 2013-09-02 오전 10:32:30 (local) 2013-09-02 오전 1:32:30 (UTC). This is an informational message only; no user action is required. SQL Server is terminating because of ..

CRL 사용 환경의 메모리 누수

CRL 사용 환경의 메모리 누수 - App Domain Unload due to Memory Pressure - Version: SQL Server 2005, 2008R2 [문제 발생] l SQLServer Log에 unload memory pressure 오류 로그 남음.(특히 전체 백업 이후) l Memoryunload 발생시 간헐적 CPU 증가 현상 발생 [원인] CLR을 사용하는 SQL Server 환경에서 가비지 수집 핸들 해제 오류 가능성. 실제 메모리부족 현상 가능성. 인터넷 검색결과 여러 커뮤니티에서 해당 이슈 제기 http://social.msdn.microsoft.com/Forums/sqlserver/en-US/7e36aa04-00ce-46a8-9a29-f63f4ac3b6b5/appdo..

Windows8 에서 TFS 2012 Express 오류

Windows8 에서 TFS 2012 Express 오류 - Version : Windows 8, SQL Server 2012 Express [문제 발생] Windows8에서 TFS 2012 설치시 TF400533 에러 발생 [해결 방법] TF400533 설치에러가 발생 하였을 때에는 제어판 -> 프로그램 추가/삭제 에서 SQL Server Express 를 삭제 한다. 프로그램 삭제 후 TFS E를 설치 한다. SQL Server가 설치 되어 있는 상태라면 SQL Server 인스턴스는 유지하고 Express 버전만 삭제 한다. [TF400533 Error] TF400533 오류는 SQL Express를 최신 버전으로 업데이트하라는 경고 오류이다. [TFS 업그레이드 요구 사항] http://msdn..

WindowsServer 2012 Hyper-V 와 특정 NIC의 VMQ 이슈

WindowsServer 2012 Hyper-V 와 특정 NIC의 VMQ 이슈 - Version : Windows Server 2012 Hyper-V [문제발생] 서버 장비교체 후 Windows Server 2012 hyper-V 환경에서Guest Server의 외부 통신 저하 및 불안정한 연결 상태 Guest Server의 CPU 사용량 증가. 통신시 latency 증가 [원인] 서버의 특정모델에 포함된 NIC카드에서 지원하는 VMQ(VirtualMachine Queue) 문제로 확인(Dell R620에 장착되어 있는 Broadcom NIC BCM5720QP) 인터넷 검색결과 여러 커뮤니티에서 해당 이슈 제기 [해결방법] Hyper-V에서 GuestServer의 NIC설정에서 가상 네트워크 큐 비활성화..

인덱스 튜닝을 통한 DB 성능 향상

인덱스 튜닝을 통한 DB 성능 향상 - Version : SQL Server 2005 [문제발생] 특정 시간에 쿼리의 응답 속도 저하 발생 [증상확인]  Sysprocesses 에서 현재 수행되고 있는 프로세스 중 처리시간이 긴 프로세스 확인.  오랫동안수행중인 쿼리의 플랜을 수집하여 분석. [문제원인] 1. 쿼리가 실행 될 때 원격지에서 실행되는 쿼리부분이 대상 서버의 비효율 적인 로직으로 인하여성능 저하 발생. 2. 잘못된 쿼리 작성으로 인하여 효율적인 인덱스를 활용하지 못함. [해결방법] 1. 원격 대상 서버의 비효율적인 비즈니스 로직 부분을 변경.반복적 디스크 스캔 작업을 한 번만 읽고 처리 할 수 있도록 변경. 2. Where 절의 컬럼이 가공되어 인덱스를 활용 하지 못함. 인덱스를 활용 할..

SQL Server xp_readerrorlog의 CPU 100% 점유 현상

SQL Server xp_readerrorlog의 CPU 100% 점유 현상 - Version : SQL Server 2005, 2008 [문제 발생]  SQL Server의 CPU 사용량이 비정상적 증가.  요청 받은쿼리의 응답 속도가 저하. [증상 확인] 성능 모니터, sysprocesses, SQL Serverer 에러로그등을 통하여 문제 진단. -- blocking select t1.resource_type as [lock type] ,db_name(resource_database_id) as [database] ,t1.resource_associated_entity_id as [blk object] ,t1.request_mode as [lock req] ,t1.request_session_i..