SQL Server 7.0 세미나 (Performance Tuning)

Slides:



Advertisements
Similar presentations
하나포스닷컴에서 SQL Server 의 역할 서명옥
Advertisements

CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
1 Orange Part II WareValley. 2 Loader Tool 3 Loader Tool 실행.
SQL Server 2000 트랜잭션과 잠금 데브피아 세미나
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
DB2 Information Management DB2 UDB CLP Command Summary.
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
오라클 데이터베이스 성능 튜닝.
Perfect! 대용량 데이터베이스 튜닝Ⅱ.
소리가 작으면 이어폰 사용 권장!.
데이터 모델링 방법론 2003년 03월.
DRIMS-Cloud 소개.
SAP QUERY SAP R/3 4.6C.
Chapter 02. 데이터 모델링.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
대용량 데이터베이스 솔루션 발표자: 박보영 2007년 5월19일.
오라클 데이터베이스 성능 튜닝.
Database & Internet Computing Laboratory 한 양 대 학 교
제 5 장 인덱스 생성 및 관리.
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
Microsoft .Net Regional director
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
AWR DB 보고서 분석.
Chapter 05 SQL 인젝션 공격.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
MySQL performance Xhark 김재홍.
Toad for Oracle 설치 방법.
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
12. 데이터베이스 설계.
Korea University of Technology and Education Hongyeon Kim
오라클 데이터베이스 성능 튜닝.
Chapter 05 데이터베이스 프로그래밍.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
SQL Server™ 2000: DBA의 역할과 책임 하 성희.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
제 17 장 (Oracle) 오라클에서 질의 최적화
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
DP-ORA 쿼리 최적화 가이드 쿼리 최적화 방법 2014년 7월.
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
목차 회사소개 회사현황 시스템 구성도 SQL Server 사용 로드맵 프로젝트 개요 DB 마이그레이션
Computer System Architecture
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL Server 2000 Internal 데브피아 세미나
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
고급 T-SQL.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
SQL Query in the SSMS : DB, Table
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
제11회 SQL 고급과정 세미나 SQL Server 보안 핵심만 알면 확 달라진다
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
Chapter 12 Memory Organization
MS-SQL7.0 Implementation 강의 노트
Reorganizing and Rebuilding Indexes
SQL Server 2000 세미나 View, SP &Trigger
How I Approach Tuning a SQL Statement
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
데이터 베이스의 내부 구조.
Stored program 장종원
제 5 장 MariaDB인덱스 생성 및 관리.
Presentation transcript:

SQL Server 7.0 세미나 (Performance Tuning) 주최: Microsoft 강사: 하성희

차례 Performance tuning 원칙 Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

차례 Performance tuning 원칙 Index Query Optimization Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

기본 원칙 Auto-configuring, self-tuning Buffer cache의 활용 극대화 Focus : 최소의 I/O 효율적인 Index 생성 및 관리 Application과 Query Tuning Query Plan 확인 Tuning Tool의 적절한 활용 SQL Server Profiler, Index Tuning Wizard 모니터링 Bottleneck 발생 여부 확인

차례 Performance tuning 원칙 Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

주요 Parameter들 Max Async I/O 디폴트 : 32, 최대:255 Advanced Option sp_configure “show advanced options”, 1 go Affinity Mask Max Server Memory Min Server Memory

차례 Performance tuning 원칙 Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

데이터 액세스 방식 … Table Scan : 모든 Page를 순차적으로 액세스하는 방식 Index에 근거한 검색 : Index Page들을 검색하여 조건에 맞는 Key를 찾아 내는 방식 Table Scan : 모든 Page를 순차적으로 액세스하는 방식 Data Pages … Index Pages

Index 분류 SQL Server Index Type Clustered Index Non-clustered Index Uniqueness Unique Index Non-unique Index Column 개수 Single-Column Index Composite Index

Index 구조 Clustered Index Nonclustered Index Index Pages Non-Leaf Level Leaf Level (Key Value) Data Pages Leaf Level Data Pages

Covering Indexes Nonclustered Index에 해당함. Index에 Query검색에 필요한 모든 Column들이 포함되는 경우 Covering index의 예: select col1, col3 from table1 where col2 = ‘value’ go create index indexname1 on table1 (col2, col1, col3) Automatic Covering index

Indexing 기본 원칙 데이터에 대한 이해 검색 제한 Selectivity (선택성) 확인 Table에 대한 Query 형태 분석 Query들의 우선 순위 확인 Composite Index-최적의 Column 순서 결정

데이터에 대한 이해 Logical Design과 Physical Design 데이터 특성 어떻게 데이터가 저장되는지 수행되는 query들의 형태 전형적으로 수행되는 query들의 수행주기

검색 제한 Search Arguments 사용 최적의 Search Arguments 작성 Query에서 WHERE 절을 지정 WHERE절이 row의 개수를 제한하는지 확인 Query에서 참조되는 모든 Table에 대한 구문을 검증 Leading wildcard의 사용을 자제

SARG (Search Arguments) 검색을 제한할 수 있으며 INDEX를 사용할 수 있는 경우 SARG Non-SARG WHERE name=‘Smith’ WHERE salary=commission WHERE salary < 3000 WHERE Salary!= 3000 WHERE price = 100/12 WHERE price*12=100 WHERE au_lname like ‘S%’ WHERE substring(au_lname,1,1)=‘S’ WHERE price between 9 and 20 WHERE price < 2 and price > 4 WHERE au_lname like ‘Sm%’ WHERE au_lname like ‘%Sm’

Selectivity (선택성) 확인 High selectivity Low selectivity member_no 1 2 . last_name first_name Randall Flood Joshua Kathie 10000 Anderson Bill SELECT * FROM member WHERE member_no > 8999 1000 10000 = 10% Number of rows meeting criteria Total number of rows in table = Low selectivity SELECT * FROM member WHERE member_no < 9001 9000 10000 = 90%

Composite Index- 최적의 Column 순서 결정 CREATE INDEX문에 기술된 Key Column들의 순서가 중요 예: CREATE INDEX t1_ix ON t1 (A, B) WHERE A=‘Value’ : efficient WHERE A=‘Value’ and B=‘Value’: efficient WHERE B=‘Value’ : less efficient Query 형태 분석 Selectivity 고려

Index를 생성하면 효과적인 경우 특정 값과 일치하는 소수의 Row를 검색하는데 사용되는 Column들 자주 Join Key로 사용되는 Column들 특정 순서로 조회되는 Column들 (C.I) *** Good Selectivity ***

Good Selectivity Selectivity 와 Density Index의 Selectivity 확인 DBCC SHOW_STATISTICS (table_name, index_name) Statistics 갱신 디폴트 : auto update statistics 수작업 : UPDATE STATISTICS table_name

FILLFACTOR & PAD_INDEX

권장 사항 - Selectivity가 높은 Column에 Index를 생성한다. - Query에서 자주 사용되는 Column들에 nonclustered index를 만들어 줌으로써 Index covering의 가능성을 높인다. - Clustered Index는 integer key, unique, non-null 또는 IDENTITY column에 생성하면 좀 더 효과적이다. - OR 연산에서 참조되는 모든 Column들에 대하여, 유용한 Index가 존재하는지 확인하고 Index를 생성한다.

제목 Performance tuning 원칙 Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

Query Optimizer의 기능 가장 효율적인 Query Plan을 결정 Index들이 존재하는지 그리고 유용한지를 확인 어떤 index나 column이 사용될 수 있는지 확인 어떻게 Join을 수행할지를 결정 Cost에 근거한 평가방식을 사용 Column statistics를 생성 Query Plan을 작성 유용한 정보를 사용

Cost-Based Optimization 사용 방식 Optimization Plan의 개수를 제한 Cost는 I/O 와 CPU cost 측면에서 평가 Query Processing Time 을 결정 Physical operator들과 operation의 순서 Parallel processing과 serial processing

Query Optimization 단계 Query 분석 검색과 Join 확인 Index 선택 Index(들) 존재 여부 확인

Cost 한도 설정 Cost 상한 제한치를 지정 query governor를 사용하여 장시간 수행될 query가 수행되지 못하게 함으로써 시스템 자원이 낭비되는 것을 방지 Connection 제약 지정 sp_configure stored procedure 를 사용 sp_configure 'query governor cost limit', 7200 SET QUERY_GOVERNOR_COST_LIMIT 문을 수행 예: SET QUERY_GOVERNOR_COST_LIMIT 60 Query governor가 동작하지 않도록 하려면 값을 0 으로 설정

Query Plan 정보 sysindexes Table 을 참조 STATISTIC Statements Output 확인 - SET SHOWPLAN_TEXT ON - SET SHOWPLAN_ALL ON - Graphical Showplan 확인

sysindexes 테이블 Table & Index 정보를 저장 Index의 타입 (indid) 사용된 Space (dpages, reserved, used) Fill factor (OrigFillFactor) 각각의 Index에 대하여 Statistics를 저장

Statistics 생성 자동으로 Statistics를 생성해 주는 경우 데이터가 있고 Index가 걸려 있는 Column들 Join 문이나 WHERE절에서 사용되면서 Index가 없는 Column들 직접 Statistics를 생성하는 경우 Index가 없는 Column들 Composite Index의 첫번째 Column이 아닌 모든 Column들

Statistics 갱신 Statistics 갱신 주기 자동 Statistics 갱신 수동 Statistics 갱신 데이터가 Table에 저장되기 전에 Index를 생성한 경우 Table의 데이터를 truncate한 경우 데이터가 아주 조금 있거나 없었던 Table에 많은 수의 row들을 추가하고, 즉시 그 Table에 대하여 query를 수행하고자 하는 경우

권장 사항 - Query Governor를 사용하여 장시간 수행되는 query가 수행되어 시스템 자원을 낭비하지 않도록 한다. 수행되어 시스템 자원을 낭비하지 않도록 한다. - 데이터와 사용자들이 데이터를 액세스하는 방식을 완전히 이해한다. - SQL Server가 자동으로 Statistics를 생성하고 수정하도록 한다 - Query Optimizer에 도움이 될 만한 Column들에 직접 Statistics를 생성해 준다. - Query Plan을 확인하고, Index를 효율적으로 사용하도록 Index와 query tuning 작업을 지속적으로 수행한다.

차례 Performance tuning 원칙 Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

Tuning Tool 활용 SQL Profiler 와 Index Tuning Wizard를 주기적으로 연동 활용 SQL Server Performance Monitor 활용 Bottleneck 감지 주요 counter들 · (Physical or Logical) Disk Queue > 2 ·  System: Processor Queue Length > 2 (per CPU) ·  Memory:Pages/sec > 0, Memory:Page Reads/sec > 5 · Memory: Pages Faults/sec > 0 · Processor:%Processor Time > 95 Query Analyzer Statistics I/O Graphical showplan

차례 Performance tuning 원칙 Configuration Parameter Index Query Optimization Performance Tuning Tool 기타 Performance 관련 Topic

기타 Issue Deadlocking Blocking Normalization Subquery Cursor View Trigger