SQL Server 818

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..

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

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 단순 매개 변수화 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서는 T-SQL문에 매개변수를 사용하여 새 SQL문을 이전에 컴파일된 기존의 실행 계획과 일치 시켜 관계형 엔진의 성능을 향상 시킨다. 매개 변수를 사용하지 않고 SQL문이 실행되면 SQL Server는 내부적으로 해당 문을 매개 변수화하여 기존 실행계획과 일치할 가능성을 높인다. 이 프로세스를 단순 매개변수화라 한다. (SQL Server 2000에서는 자동 매개변수화라 한다) 다음 스크립트를 보면 Where 절의 값이 1인 매개변수로 지정될 수 있다. 관계형 엔진은 값 1 대신 매개변수가 지정된 것처럼 일괄 처리에..

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

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 매개 변수 및 실행 계획 재사용 Version : SQL Server 2005, 2008, 2008R2, 2012 ADO, OLE DB, ODBC 응용 프로그램의 매개변수 표식을 포함하여 매개 변수 매개 변수를 사용하면 실행 계획을 좀더 많이 재사용 할 수 있다. 또한 보안 측면에서는 최종 사용자가 입력한 값을 갖는 매개 변수 표식을 사용하는 것이 데이터 액세스 API에서드, EXECUTE 문 또는 sp_executesql 저장 프로시저 중 하나를 사용하여 실행하는 문자열에 값을 연결하는 것보다 안전하다. 아래 스크립트에서 동일한 구문에 Where 절의 조건만 다른 스크립트 이다. 동일한 구문임에도 불구하고 두 쿼리는 다르게 인식 된다..

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

SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에는 실행 계획과 데이터 버퍼를 모두 저장하는데 사용되는 메모리 풀이 있다. 실행 계획이나 데이터 버퍼에 할당되는 풀 비율은 시스템 상태에 따라 동적으로 변동 된다. 실행 계획을 저장하는데 사용되는 메모리 풀 부분을 프로시저 캐시 라고 한다. SQL Server 실행계획은 쿼리 계획과 실행 컨텍스트로 나눌 수 있다. 쿼리 계획 : 대량 실행 계획은 여러 사용자가 사용하는 재진입용 읽기 전용 데이터 구조이다. 이것을 쿼리 계획이라 한다. 쿼리 계획에는 사용자 컨텍스트가 저장되지 않는다. 메모리에는 쿼리 계획의 복사본이 두 개까지만 존재 할..

DMV를 이용한 캐시된 저장 프로시저 통계 정보 확인

DMV를 이용한 캐시된 저장 프로시저 통계 정보 확인 Version : SQL Server 2008, 2008R2, 2012 내 저장 프로시저가 잘 수행 되고 있을까? 동적관리 뷰(DMV)를 통해서 캐시된 저장 프로시저에 대한 집계 성능 통계를 확인 하여 보자. 뷰에는 캐시된 각 저장 프로시저 계획에 대해 하나의 행을 가지고 있다. 행의 유효 기간은 저장 프로시저가 캐시에 남아 있는 기간과 같으며 캐시에서 저장프로시저가 제거되면 해당 뷰에서도 해당 행이 제거 된다. 이때 Performance Statistics SQL 추적이벤트가 sys.dm_exec_query_stats와 유사하게 발생한다. select * from sys.dm_exec_procedure_stats 이름데이터 형식설명database_i..