DB튜닝 37

성능분석 15탄 – I/O 관련 성능 카운터

성능분석 15탄 – I/O 관련 성능 카운터 Version : SQL Server 2005, 2008, 2008R2, 2012 I/O와 관련된 성능 카운터에 대해서 알아본다. Page reads/sec [SQLServer:Buffer Manager] – [Page reads/sec]에 위치하며 실제 데이터베이스에서 읽은 페이지의 수를 나타낸다. 이 카운터의 성능은 디스크 IO 읽기의 중요한 지표이다. 일반적으로 데이터는 버퍼풀에 캐싱되어 있어 디스크에서는 적은 데이터만 읽어 부하를 줄인다. 이 수가 높게 나타난다면 누락된 인덱스 또는 메모리 부족일 가능성 있다. Page writes/sec [SQLServer:Buffer Manager] – [Page reads/sec]에 위치하며 실제 데이터베이스에서 ..

성능분석 14탄 – SQL Server 사용 성능 카운터

성능분석 14탄 – SQL Server 사용 성능 카운터 Version : SQL Server 2005, 2008, 2008R2, 2012 성능카운터는 SQL 서버 성능에 대한 또 다른 관점을 제공 한다. SQL Server에서 사용하는 성능카운터에 대해서 알아본다. 아래 소개한 카운터 외에도 다양한 카운터 정보를 활용 할 수 있다. Batch Requests/sec [SQLServer:SQL Statistics] – [Batch Requests/sec]에 위치하며 서버에 수신되는 SQL 일괄 처리 요청 수 이다. Transactions 모든 활성 트랜잭션의 수를 나타낸다. 트랜잭션 카운터는 [SQLServer:General Statistics], [SQLServer:Transactions] 두 군데 위..

성능분석 13탄 – 누락된 인덱스(missing index)

성능분석 13탄 – 누락된 인덱스(missing index) Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 누락된 인덱스는 성능 문제를 일으킬 수 있다. 누락된 인덱스(missing index)는 인덱스가 생성되어 있지만 사용되지 않는 인덱스이다. SQL Server 2005 부터는 누락된 인덱스를 확인하기 위한 DMV가 제공되고 있다. 다음 DMV를 활용하여 누락된 인덱스의 정보를 확인 할 수 있다. Sys.dm_db_missing_index_details : 누락된 인덱스에 대한 상세 정보 반환 Sys.dm_db_missing_index_group_stats : 누락 된 인덱스 그룹에 대한 요약 정보 반환 Sys.dm_db_missing_in..

성능분석 12탄 – 문제 쿼리 식별

성능분석 12탄 – 문제 쿼리 식별 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서는 sys.dm_exec_query_stats DMV를 사용하여 실행된 쿼리에 대한 통계를 확인 할 수 있다. DMV에서는 몇 개의 쿼리가 실행 되었는지, 전체, 최대, 최소. 마지막 활성 CPU 시간 등을 확인 할 수 있으며 전체, 최대, 최소, 마지막 읽기 쓰기에 대한 정보를 확인 할 수 있어 문제를 식별하는데 매우 좋은 정보이다. select* from sys.dm_exec_query_stats Large execute count 많은 실행 횟수는 자주 실행되는 쿼리로 성능에 가장 민감하다. 빈도가 높은 만큼 작은 개선이 전반적으로 상당한 성능에 이점을 가져올 ..

성능분석 11탄 – 실행 계획 분석

성능분석 11탄 – 실행 계획 분석 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서는 쿼리에 대한 실제 실행 계획을 확인 할 수 있다. 실제 쿼리가 실행되는 과정을 XML 트리로 확인 할 수 있는 방법이 몇 가지 있다. SET SHOWPLAN_XML_ON : 해당 세션에서 SET SHOWPLAN_XML_ON 명령을 수행하고 쿼리를 실행 한다. set showplan_xml on go select * from [HumanResources].[EmployeeDepartmentHistory] XML을 클릭하면 그래픽의 실행계획을 확인 할 수 있으며 마우스 오른쪽 클릭을 사용하여 XML 트리를 확인 할 수 있다. Profiler 사용 : 프로파일러 Eve..

성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent)

성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent) Version : SQL Server 2005, 2008, 2008R2, 2012 쿼리 또는 저장프로시저에 대한 가장 좋은 대기 유형 정보는 실행 시간과 IO 정보이다. 이 정보는 확장이벤트(XEvent)를 사용하여 모니터링을 할 수 있다. 다음 스크립트는 Sqlos.wait_info 정보를 캡처하고 특정 실행 세션(SPID)에 대한 확장 이벤트 세션을 필터링하는 확장이벤트 세션 생성 작업이다. create event session session_waits on server add event sqlos.wait_info (WHERE sqlserver.session_id= 54/*execution_spid*/ and duration>0) , ad..

MySQL/MariaDB 슬로우 쿼리 로그

MySQL/MariaDB 슬로우 쿼리 로그 Version : Mariadb 5.5.4.2-WinX64 슬로우 쿼리 로그는 설정에서 정의된 시간보다(second) 오랫동안 실행 된 쿼리에 대해서 기록을 한다. 슬로우 쿼리 로그는 MySQL/MariaDBrk 쿼리를 실행 한 후 실제 소요된 시간을 기준으로 슬로우 쿼리 로그에 기록 여부를 판단하기 때문에 정상적으로 실행이 완료되고 실행 시간이 정의된 시간보다 큰 경우 기록된다. 슬로우 쿼리 로그 파일은 설정파일(my.ini 또는 my.cnf)에서 [mysqld]항목에 다음 명령을 추가한다. 아래 예제는 C:/Program Files/MariaDB 5.5/data/ 폴더에 Slow_Query.log 이름으로 슬로우 쿼리를 기록한다. 그리고 슬로우의 기준을 1초..

MySQL, MariaDB 2015.07.16