Microsoft PowerPoint - 1_3_DBA_SQL_tuning

Similar documents
슬라이드 1

PowerPoint 프레젠테이션

Ç¥Áö

결과보고서

MS-SQL SERVER 대비 기능

untitled

이주제를이해하는데필요한지식 SQL Programming 인덱스와실행계획확인 데이터압축 100 개념및소개수준 200 중간수준 300 고급수준 400 전문가수준 200 에 100 에 더하여 선수지식 더하여 능숙한사용 Level 300 불필요 기술적세부사항설명 경험, 아키텍

문서 템플릿

歯sql_tuning2

Session Title

정도전 출생의 진실과 허구.hwp

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

Oracle Database 10g: Self-Managing Database DB TSC

강의 개요

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

슬라이드 1

Ä¡¿ì³»ÁöÃÖÁ¾

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE


KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

Index

PowerPoint 프레젠테이션

[ 그림 1] Perfmon 실행 [ 그림 2] 모니터링카운터추가 기술백서 White Paper

PowerPoint 프레젠테이션

13주-14주proc.PDF

PowerPoint 프레젠테이션

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

10.ppt

빅데이터시대 Self-BI 전략 이혁재이사 비아이씨엔에스

[Brochure] KOR_TunA

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

歯한글사용설명서.PDF

I care - Do you?

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT


PowerPoint 프레젠테이션

컨설팅 제안서

Microsoft PowerPoint _TechNet_SQL Server 2005.ppt [호환 모드]

슬라이드 1

NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,

PowerPoint 프레젠테이션

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역


TITLE

Lec. 2: MySQL and RMySQL

2015°ø¹«¿øÇѱ¹»ç1´Ü¿ø

adfasdfasfdasfasfadf

DBMS & SQL Server Installation Database Laboratory

Oracle9i Real Application Clusters

62

Portal_9iAS.ppt [읽기 전용]

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta


6주차.key

º¸µµ¿Â

FileMaker 15 ODBC 및 JDBC 설명서

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Example. Do It Yourself

Microsoft PowerPoint - 27.pptx

초보자를 위한 분산 캐시 활용 전략

Jerry Held


PHP & ASP

BMP 파일 처리

ePapyrus PDF Document

SQL Tuning Business Development DB

Chap 6: Graphs

sms_SQL.hwp

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

목 차

슬라이드 1

5장 SQL 언어 Part II

2

강의 개요

Microsoft PowerPoint - 10Àå.ppt

Stage 2 First Phonics

¹Ìµå¹Ì3Â÷Àμâ

레이아웃 1

초보자를 위한 ADO 21일 완성

untitled

Observational Determinism for Concurrent Program Security

PowerPoint 프레젠테이션

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 조원 송찬호 2

CUDA Programming Tutorial 2 - Memory Management – Matrix Transpose

Microsoft Word - SQL튜닝_실습교재_.doc

뇌를자극하는 SQL Server 2012 (1 권 ) 1 권 : 기본편 < 이것만은알고갑시다 > 모범답안 1 장 1. (1) Microsoft (2) Oracle (3) IBM (4) Oracle (5) Micr

untitled

Microsoft PowerPoint - Session2 - Tibero 6

Page 2 of 6 Here are the rules for conjugating Whether (or not) and If when using a Descriptive Verb. The only difference here from Action Verbs is wh

Beyond Relational SQL Server, Windows Server 에디션비교 씨앤토트 SW 기술팀장세원

The Self-Managing Database : Automatic Health Monitoring and Alerting

Social Network

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

슬라이드 1


Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - chap10-함수의활용.pptx

Transcription:

아주특별한 SQL 튜닝 씨퀄로 김정선

아주특별한

Level 400 100 개념및소개수준 200 중간수준 300 고급수준 400 전문가수준 선수지식불필요 100 에더하여기술적세부사항설명 200 에더하여능숙한사용경험, 아키텍처지식필요

SINCE 2002

SQL Server Specialist Member & Leading PASS Korea Member Microsoft TechNet Global Q/A

Blog http://blog.naver.com/visualdb Twitter Jungsun_Kim

뉴호라이즌교육센터

왕눈이 BlockSniffer SQLRoadPerfmon

단, 현장 기술 지원 요청 시 별도 비용이 청구됩니다.

새로운시각 선입견탈피 Level 400

SELECT ContactID, FirstName, LastName, ModifiedDate FROM AdventureWorks.Person.Contact WHERE FirstName = 'Ramesh'

정렬 (Sort Warnings) 병렬쿼리 (Parallel Query)

CREATE TABLE dbo.supplier ( S_SUPPKEY int UNIQUE, S_NATIONKEY int, S_COMMNET char(2000) )

1 2 SELECT S_SUPPKEY, S_NATIONKEY, S_COMMENT FROM dbo.supplier WHERE S_SUPPKEY < 3057 ORDER BY S_NATIONKEY SELECT S_SUPPKEY, S_NATIONKEY, S_COMMENT FROM dbo.supplier WHERE S_SUPPKEY < 3058 ORDER BY S_NATIONKEY

1 2 SELECT S_SUPPKEY, S_NATIONKEY, S_COMMNET FROM dbo.supplier WHERE S_SUPPKEY < 3057 ORDER BY S_NATIONKEY 298ms SELECT S_SUPPKEY, S_NATIONKEY, S_COMMNET FROM dbo.supplier WHERE S_SUPPKEY < 3058 ORDER BY S_NATIONKEY 484ms

50% 예상하위트리비용 0.639147 예상행수 3056.97 50% 예상하위트리비용 0.639169 예상행수 3057.97

1 2 SELECT S_SUPPKEY, S_NATIONKEY, S_COMMNET FROM dbo.supplier WHERE S_SUPPKEY < 3057 ORDER BY S_NATIONKEY 테이블 SUPPLIER. 검색수1, 논리적읽기수 769, SELECT S_SUPPKEY, S_NATIONKEY, S_COMMNET FROM dbo.supplier WHERE S_SUPPKEY < 3058 ORDER BY S_NATIONKEY worktable 없음 테이블 SUPPLIER. 검색수1, 논리적읽기수 769,

1 Duration CPU Reads Writes 298 21 769 0 2 Duration CPU Reads Writes 484 31 1,352 0

SELECT session_id, status, wait_type, wait_time FROM sys.dm_exec_requests WHERE session_id = 54 session_id Status wait_type wait_time 54 suspended IO_COMPLETION 23

SELECT granted_memory_kb, used_memory_kb, max_used_memory_kb FROM sys.dm_exec_query_memory_grants WHERE session_id = 54 granted_memory_kb used_memory_kb max_used_memory_kb 8192 8192 8192

SELECT * FROM sys.dm_io_virtual_file_stats(db_id('tempdb'), 1) SELECT WHERE S_SUPPKEY < 3057 SELECT * FROM sys.dm_io_virtual_file_stats(db_id('tempdb'), 1) SELECT WHERE S_SUPPKEY < 3058 SELECT * FROM sys.dm_io_virtual_file_stats(db_id('tempdb'), 1) db_id num_of_reads num_of_bytes_read 1 2 num_of_writes num_of_bytes_written 2 20 1,138,688 2 16,384 1 2 20 1,138,688 2 16,384 2 2 117 7,405,568 98 6,283,264

메모리에적합하지않은정렬작업을나타냅니다. SELECT 문에사용된 ORDER BY 절등쿼리내의정렬작업만포함됩니다, by Profiler

행수 or 열크기 예측및판단오류 = 메모리할당오차

1 2 SELECT TOP 100 S_SUPPKEY, S_NATIONKEY, S_COMMENT FROM dbo.supplier WHERE S_SUPPKEY < 20000 ORDER BY S_NATIONKEY 93ms SELECT TOP 101 S_SUPPKEY, S_NATIONKEY, S_COMMENT FROM dbo.supplier WHERE S_SUPPKEY < 20000 ORDER BY S_NATIONKEY 939ms

32 core? data file 개수 동일한파일크기 for what? = = CPU core 수 tempdb 과다동시할당병목

for what? = have you? =?????? tempdb 과다동시할당병목 Sort Warnings - 파일이많을수록손해? by Ramesh Meyyappan

해결 (solving)

1) 그쿼리쓰지마? 2) ORDER BY 절없애? 3) 열타입및길이변경 4) 인덱스튜닝 5) 쿼리튜닝

2 SELECT S_SUPPKEY, S_NATIONKEY, CONVERT( varchar(5000), S_COMMENT) FROM dbo.supplier WHERE S_SUPPKEY < 3058 ORDER BY S_NATIONKEY 정렬대상집합크기조정

CREATE PROC dbo.up_reuse ( @date datetime ) AS SELECT FROM Sales.SalesOrderDetail AS d INNER JOIN Sales.SalesOrderHeader AS o ON d.salesorderid = o.salesorderid WHERE d.unitprice > 0 AND o.orderdate >= @date GROUP BY o.duedate, o.shipdate ORDER BY o.shipdate DESC EXEC dbo.up_reuse 2004-01 01-01 01 EXEC dbo.up_reuse 2001-01-01

Sort Warnings vs. 병렬쿼리

Hash Warning 해시연산중해시재귀또는해시중단 ( 해시재귀한도초과 ) 이일어난경우발생합니다, by Profiler

Please tell me What happened? How do I do?

병렬쿼리 : 5,328ms 직렬쿼리 : 1,088ms

A사 ) 누적대기분석 대기유형 평균대기시간 (ms) 요청횟수 CXPACKET 421 234,501 B사 ) 상세대기분석 - 20 분간 대기유형 평균대기시간 (ms) 요청횟수 CXPACKET 3,154 702

쿼리프로세서 Exchange 연산자동기화시발생. 이대기유형에대한경합이문제가되면, 병렬처리수준을낮출것을고려할수있다. by 온라인설명서?

No 시각 SPID 대기시간 (ms) 대기유형대기리소스 1 2010-04-05 309 5,563 CXPACKET 2 2010-04-05 309 875 LATCH_EX PARALLEL 3 2010-04-05 309 1,360 LATCH_EX PARALLEL 4 2010-04-05 309 5,016 LATCH_EX PARALLEL 5 2010-04-05 309 2,032 LATCH_EX PARALLEL 6 2010-04-05 309 109 PAGEIOLATCH_SH 15:1:..... 16 2010-04-05 309 2,032 LATCH_EX PARALLEL

EXEC sp_configure 'max degree of parallelism', 4 RECONFIGURE SELECT * FROM Sales.SalesOrderHeader OPTION (MAXDOP 8)

CPU n Thread n Scheduler n

평균 worker수 33 65 33 33 97 33 33 65

Sort 실제행수 8357 스레드 0 0 스레드 1 270 스레드 10 270 스레드 32 270 스레드 9 270 Clustered Index Scan 실제행수 19048 스레드 0 0 스레드 1 1038 스레드 10 1144 스레드 32 378 스레드 9 506

NUMA / 2 Nodes / 8 x 4 Core

Ordinarily a well tuned OLTP application would not parallelize unless an index is missing, there is an incomplete WHERE clause, or the query is not a true OLTP transaction. from SQL Customer Advisory Team

해결 (solving)

1) 기본적으로쿼리튜닝 불필요한병렬처리제거 효율적인병렬처리지원 2) CXPACKET 대기가문제인경우 MAXDOP이너무많다면옵션조정고려 필요시개별쿼리별 MAXDOP 힌트적용

50

총 worker Thread 수

기본은디폴트설정사용 필요시 MAXDOP 조정고려 운영시스템에대한충분한이해가선결 철저한검증과관리가중요

OLAP 성쿼리에서 Sort 연산주의 OLTP 성쿼리에서 Parallel 연산주의

감사합니다.