47
SQL Server 기반의 고성능-대용량 SAP 시스템 만들기 이랜드 시스템스 유규성

SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

  • Upload
    vuthien

  • View
    261

  • Download
    19

Embed Size (px)

Citation preview

Page 1: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

SQL Server 기반의고성능-대용량 SAP 시스템 만들기

이랜드 시스템스유규성

Page 2: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• SQL Programming• 인덱스와 실행계획 확인• 데이터 압축

이 주제를 이해하는데 필요한 지식

개념 및

소개 수준

선수 지식

불필요

100중간 수준

100에

더하여

기술적 세부

사항 설명

200고급 수준

200에

더하여

능숙한 사용

경험, 아키텍처

지식 필요

300전문가

수준

400

Level 300

Page 3: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 2000.01 ~ 현재 : 이랜드시스템스 DBA / DA

강사소개

Page 4: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

80:20 법칙

16

224,000

19,0786,155

??

Page 5: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 시스템 정보• 성능관리

– 통계 정보 관리– 인덱스 관리

• 공간 관리• Summary

순서

Page 6: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

시스템 정보

Page 7: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

SAP System Landscape(Korea)PRDPRDQASQASDEVDEV

Ret

ail

Ret

ail

Fash

ion

Fash

ion

ERPERP

BWBW

CRMCRM

ERPERP

BWBW

공통

공통 HRHR

DR

# 각 부문(유통, 패션, 공통) 별 User Interface는 SAP EP로 구축됨.

Netweaver 7.0

Netweaver BI 7.0

CRM 5.0

Netweaver 7.0

Netweaver BI 7.0

Netweaver 7.0

Page 8: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

SAP System Landscape(China)

PRDPRDQASQASDEVDEV

Fash

ion

Fash

ion ERPERP

BWBW

Stand-by

Server(한국)

BPCBPC

Netweaver 7.0

Netweaver BI 7.0

BPC 5.0

# User Interface는 SAP EP로 구축됨.

Page 9: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

System 구성 및 현황(Korea)Div. Appl. Type No. H/W model CPU RAM Disk OS DBMS DB Size

유통

ERPDB 1

Unisys ES7000/one

32 96Hitachi USP

Windows 2003 Datacenter IA64

SQL Server 2008 Enterprise

7 TB5GB/Day

APPL 5Unisys

ES7000/one48 96

Windows 2003 Datacenter IA64

BWDB 1

HP Superdome

16 32Hitachi USP

Windows 2003 Datacenter IA64

SQL Server 2008 Enterprise

6.5 TB

APPL 4HP

Superdome24 48

Windows 2003 Datacenter IA64

CRMDB 1 HP DL580 16 32

EMC CX700

Windows 2003 Enterprise X64

SQL Server 2005 Enterprise

0.7 TB

APPL 3 HP DL580 24 48Windows 2003 Enterprise X64

패션

ERPDB 1

HP Superdome

34 96Hitachi NSC55

Windows 2003 Datacenter IA64

SQL Server 2008 Enterprise

16TB 8TB12GB/Day

APPL 5HP

Superdome40 80

Windows 2003 Datacenter IA64

BWDB 1

HP Superdome

28 88EMC

CX700Windows 2003 Datacenter IA64

SQL Server 2008 Enterprise

2.9 TB

APPL 4HP

Superdome34 64

Windows 2003 Datacenter IA64

공통 HRDB 1

HP Superdome

8 24HitachiNSC55

Windows 2003 Datacenter IA64

SQL Server 2005 Enterprise

0.4 TB

APPL 2HP

Superdome16 40

Windows 2003 Datacenter IA64

Page 10: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

System 구성 및 현황(China)

Div. Appl. Type No. H/W model CPU RAM Disk OS DBMS DB Size

패션

ERPDB 2 Unisys 24 96

Hitachi USP

Windows 2003 Enterprise x64

SQL Server 2008 Enterprise

1.1 TB

APPL 5 Dell Blade 40 80Windows 2003 Enterprise x64

BWDB 1 Unisys 24 96

Hitachi USP

Windows 2003 Enterprise x64

SQL Server 2008 Enterprise

581 GB

APPL 5 Dell Blade 40 80Windows 2003 Enterprise x64

Page 11: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

통계 정보 관리

Page 12: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

무슨 문제일까요?

select * from mwhere firstname = 'JHWHJUG'

Rows Exec StmtText

1 1 SELECT * FROM [m] WHERE [firstname]=@1

1 1|--Clustered Index Scan(OBJECT:([Credit].[dbo].[m].[m_ident]), WHERE:([

Credit].[dbo].[m].[firstname]='JHWHJUG'))

(1개 행이 영향을 받음)테이블'm'. 검색수 1, 논리적 읽기수 146, 물리적 읽기수 0

Page 13: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

Query execution steps

Use Statistics

Page 14: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 옵티마이저가 최적의 실행계획을 판단하는 기준• 데이터 분포정보를 통해 dencity를 제공하고, 조회

결과를 예측하게 함

통계 정보란?

sampling . . .

Key valuedata

Table 1

Table 2

Table 3

Page 15: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• sys.sysindexes– Statblob 칼럼에 저장됨

• sys.stats• DBCC SHOW_STATISTICS

통계정보 조회하기

Page 16: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• DBCC SHOW_STATISTICS (테이블, 칼럼|통계명)

통계 정보 조회

기본정보

Density vector

Histogram

Page 17: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Densityd = 1 / (distinct row count)

• Predicate • Cardinality estimate

통계 정보 조회

Page 18: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Histogram– Captures distribution of values for a column– Max number of steps = 200– Used for estimating cardinality of search

predicates

통계 정보 조회

RANGE_HI_KEY Histogram의 step 기준 칼럼의 값

RANGE_ROWS 이전 RANGE_HI_KEY < ( row count) < 현재 RANGE_HI_KEY

EQ_ROWS RANGE_HI_KEY 값에 해당하는 (row count)

AVG_RANGE_ROWS RANGE_ROWS / DISTINCT_RANGE_ROWS

DISTINCT_RANGE_ROWS 이전 RANGE_HI_KEY < (distinct row count) <현재 RANGE_HI_KEY

Page 19: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

통계 정보 조회

Page 20: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Database option– AUTO_CREATE_STATISTICS – AUTO_UPDATE_STATISTICS – AUTO UPDATE uses default sampling

• sp_autostats– Display, change auto-stats setting (ON/OFF)– Can disable auto-stats per index, table

• sp_createstats, sp_updatestats, sp_helpstats

통계 정보 자동생성/업데이트

Page 21: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 각 통계정보에 포함된 칼럼의 변경된비율(= sysindexes.rowmodctrs / total rows)값을 기반으로 판단

통계 정보 자동 업데이트 시점

rowmodctrs >= 500 + 20%

Page 22: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

통계 자동 업데이트 - sampling

샘플링 비율

Row count

55,000건 : 100 %

100만건 : 6% ~ 10% 1000만건 :

1.5 %1억건0.45 %

Page 23: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 대용량 DB 자동 통계관리 취약점– 오래된 통계정보– 빈약한 통계정보– 통계정보 업데이트 많은 비용

통계 정보 관리

sampling . . .

Key valuedata

Table 1time

통계정보수정시점

1. 통계 정보미반영 데이터

2. 자주 사용하는데이터

Page 24: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Use auto create and auto update statistics

Best Practices

ALTER DATABASE [DB명] SET AUTO_CREATE_STATISTICS ON;

ALTER DATABASE [DB명] SET AUTO_UPDATE_STATISTICS ON;

• If needed, selectively use FULLSCAN statistics

UPDATE STATISTICS …WITH FULLSCAN

Page 25: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Consider limiting use of multi-statement TVFs and table variables

• Avoid modification of stored procedure parameters in an SP prior to use in a query

Best Practices

CREATE PROCEDURE GetRecentSales (@date datetime) WITH RECOMPILEASBEGIN

IF @date IS NULLSET @date = dateadd("mm",-3,(SELECT MAX(OrderDATE)

FROM Sales.SalesOrderHeader))SELECT * FROM Sales.SalesOrderHeader h, Sales.SalesOrderDetail dWHERE h.SalesOrderID = d.SalesOrderIDAND h.OrderDate > @date

END

Page 26: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Consider more frequent statistics gathering for ascending keys

• Use asynchronous statistics update if synchronous update causes undesired delay

Best Practices

ALTER DATABASE [Credit]SET AUTO_UPDATE_STATISTICS_ASYNC ON

Page 27: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Consider filtered statistics for heterogeneous data , for partitioned tables

• Auto Stats OFF for tables VBHDR, VBDATA, VBMOD(SAP)

Best Practices

Page 28: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 상황에 맞는 적절한 수동 업데이트 작업– 인덱스별 샘플링 비율관리– 통계 업데이트 주기관리

– 수정빈도 높은 최근 데이터와 filtered statistics 에 대한 별도 관리

Best Practices

행수 통계업데이트 기준

1만~200만 rowmodctr >= 1.0%

200만~500만 rowmodctr >= 0.8%

500만~1천만건 rowmodctr >= 0.5%

1천만건 ~ 변경 rows >= 5만건

Page 29: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Guidelines – Check table statistics – Only selective fields should be used– Selective fields should take precedence,

Avoid creating unselective index

Creating indexes

Page 30: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Guidelines – Limit the number of fields used in an index to

as few as possible– Reduce the number of indexes created per

table to as slow as possible– If >=, <=, >, < or between is used, indexes

can be only used up to the column where these are used

Creating indexes

Page 31: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• Guidelines – Check missing indexes (SAP)– covering index, filtered index 활용– 필요 시 적절한 clustered 인덱스로 교체– 운영 DB에서 온라인으로 생성 후 CTS 전송(SAP)– index 사용정보를 확인 후 불필요한 인덱스는 비

활성화(SAP)– 인덱스 힌트를 지양하고 세밀한 통계정보로 인덱

스 사용률 높이기

Creating indexes

Page 32: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

공간 관리

Page 33: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 데이터 보존 정책• 아카이빙• 데이터압축

– 저장 공간 감소, 성능 향상 기대• 압축 백업

– 백업 공간 감소– 백업 및 복원시간 단축

효율적인 대용량 데이터관리

Page 34: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

데이터 보존 정책

초고속 저장소 저속 대용량 저장소

재무

회계

생산

영업

물류

3년

3년

1년

1년

18개월

영구보존/제거

비즈니스상 더 이상필요 없는 데이터는

제거

빈도 낮으나, 필요 시사용할 수 있도록유지하는 데이터

고속 대용량 저장소

재무

회계

생산

영업

물류

5년, 10년

가장 빈번히사용되는 데이터

[프로그램 최적화]필요한 데이터만 처리하도록 프로

그램 개선하여 시스템 속도 향상

[데이터 저장소재배치]

자주 사용되는 데이터만 최적의 장소에보관하도록 하여 속도 향상,저장소

비용절감

데이터 생명 주기(Data Life Cycle)

저장소이관

저장소이관

데이터 압축 아카이빙

Page 35: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 행 압축

데이터 압축

4바이트

1바이트

Page 36: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 페이지 압축 : 접두사

데이터 압축

Page 37: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 페이지 압축 : 사전

데이터 압축

Page 38: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 대상 테이블 선정– Table size 기준 Top 150 (80:20)– 변경 비율 < 5%

(update+delete)/(slect single + select + insert)

• 압축 방식– 페이지 압축 선택

• 반복되는 데이터 패턴이 많음(SAP 특성)• 순차 저장, 조회 위주의 데이터• CPU 유휴자원 준비

데이터 압축 사례

Page 39: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

ST04 테이블 크기 상위 150개 추출

Page 40: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• ST02>세부분석메뉴>테이블 호출통계

ST02 - 테이블 변경비율 확인

Page 41: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

데이터 압축 결과

Page 42: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

데이터 압축 결과

• 50%의 데이터 공간 절감• 데이터 증가속도 둔화

Page 43: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 대용량 테이블의 압축– 압축 대상 테이블의 별도의 통계 관리

• 압축 작업 – 통계업데이트 작업간 blocking 발생

– 압축 수행 전 DB 복구모델을 Simple이나 Bulk logged 모드로 변경 할 것

– 압축 작업 진행간 모니터링 및 결과 기록 프로그램

데이터 압축 작업을 할 때..

Page 44: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

SUMMARY

Page 45: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• 세밀한 통계정보 관리로 똑똑한 옵티마이저 만들자– 자동 통계 업데이트 활성화– 상황에 맞는 적절한 수동 업데이트 작업– 테이블 파티셔닝 활용

• SQL Server의 특성을 활용한 인덱스 관리– 선택도, 적절한 클러스터드 인덱스 사용하도록

변경– 온라인 인덱스 생성– filtered index, covering index

Summary

Page 46: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

• SQL Server의 특성을 활용한 공간 관리– 보존기간 내 : 압축, 보존기간 이후 : 아카이빙– 아카이빙 작업에 적절한 인덱스 추가– 데이터 압축시 변경비율(5%이내) + Size 기준으

로 대상선정, 통계관리 작업과 조율– 백업 정책, 압축백업 적용

Summary

Page 47: SQL Server 기반의 고성능-대용량 SAP 시스템만들기 - 이랜드 시스템스 · PDF file · 2011-09-29고성능-대용량 sap ... • 2000.01 ~ 현재: 이랜드시스템스dba

감사합니다