Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

활용예시를 통한 Sql server 2012의 향상된 프로그래밍 기능 엿보기

활용예시를 통한 Sql server 2012의 향상된 프로그래밍 기능 엿보기

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

활용예시를 통한 Sql server 2012의 향상된 프로그래밍 기능 엿보기

  1. 1. 활용예시를 통한 SQL Server 2012 의향상된 프로그래밍 기능 엿보기DB 팀임현수
  2. 2. 개요향상된 프로그래밍 기능 P a rt 1 - 페이징 (O F FS E T/FE TC H ) - 효율적인 채번 (S E Q U E N C E ) - 경험치 비교 (An alytic F u n c tio n s )향상된 프로그래밍 기능 P a rt 2 - 집계처리 가속화 (C o lu m n S to re In d e x) - 쿼리분석기 1 20% 활용 - 유용한 함수마무리
  3. 3. 개요
  4. 4. S Q L S e rve r 2005 ~ 2008 R2향상된 프로그래밍 기능- RAN K () O VE R- RO W_N U MB E R () O VE R- C TE- ME RG E- F ilte re d In d e x
  5. 5. SQL Server 2012향상된 프로그래밍 기능 Part 1
  6. 6. 페이징 (FETCH/OFFSET)
  7. 7. 페이징 (ro w_n u m b e r()) B e fo re select x.* from ( select top ( @PageNo * @PageSize) , row_number() over (order by col01 ) seqNo , col01, col02 from dbo.tab01 with (readuncommitted) where col01 > @startArticleNo order by col01 ) x where x.seqNo between (@PageNo-1) * @PageSize and @PageNo * @PageSize -1 order by x.col01;
  8. 8. 페이징 (O F F S E T/F E TC H ) A fte r select * from dbo.tab01 wtih (nolock) where col01 >= @startArticleNo order by col01 offset (@PageNo-1)*@PageSize rows fetch next @PageSize rows only;
  9. 9. 페이징 ( 정리 ) 항목 Row_number() OFFSET/FETCH 구문 복잡도 복잡 (11 lines) 단순 (6 lines) 성능 I/O 부하 동일 성능 개선효과는 없으나 , 의견 개발생산성 증대
  10. 10. 효율적인 채번 (Sequence)
  11. 11. 효율적인 채번 ( 임시 테이블 ) B e fo re -- 임시테이블 생성 create table SeqNo_tab (SeqNo int); Insert into SeqNo_tab values (1); -- 채번 성능 테스트 declare @seqval int = 0, @cnt int = 0; while (@cnt <= 1000000) begin update SeqNo_tab set @seqval= SeqNo = SeqNo + 1; set @Cnt = @Cnt + 1; end
  12. 12. 효율적인 채번 (S e q u e n c e ) A fte r -- 시퀀스 생성 Create sequence SeqNo_cache10 Start with 1 Increment by 1 Cache 10; go -- 채번 성능 테스트 declare @seqval int = 0, @Cnt int = 0; while (@Cnt <= 1000000) begin SELECT @seqval = next value for SeqNo_cache10; set @Cnt = @Cnt + 1; end
  13. 13. 효율적인 채번 ( 정리 ) 항목 임시테이블 SEQUENCE 구문 복잡도 유사 성능 21 초 (Nocache) or 3 분 49 초 (100 만건 ) 9 초 (Cache) 약 25 배 성능 개선 , 의견 범위 처리 함수 제공
  14. 14. 경험치 비교 (Analytic Functions)
  15. 15. 경험치 비교
  16. 16. 경험치 비교 (s e lf j in ) o B e fo re select a.seqNo, a.CompareValue, b.CompareValue from tab_01 a with (readuncommitted) left outer join tab_01 b with (readuncommitted) on a.seqNo -1 = b.seqNo order by a.seqNo 42 pages
  17. 17. 경험치 비교 (An alytic F u n c tio n : LAG ) A fte r select seqNo , compareValue , lag(compareValue, 1, 0) over (order by seqNo) as LagValue from tab_01 with (readuncommitted) order by seqNo 2 pages
  18. 18. 경험치 비교 ( 정리 ) 항목 Self join Analytic Func (LAG) 구문 복잡도 유사 성능 42 pages 2 pages 약 21 배 성능 개선 , 의견 활용 빈도는 낮으나 매우 유용함
  19. 19. SQL Server 2012향상된 프로그래밍 기능 Part 2
  20. 20. 집계 쿼리 가속화 (ColumnStoreIdx)
  21. 21. 집계 쿼리 가속화 (C o lu m n S to re In d e x)
  22. 22. 집계 쿼리 가속화 ( 정리 ) 항목 Rowstore Index Columnstore Index 용량 1,500 MB 270 MB 성능 1 분 19 초 0초 (3500 만건 ) 집계를 위한 최적의 솔루션임 . 의견 Columnstore Index 있는 경우 DML 사용 불가
  23. 23. 쿼리분석기 120% 활용 (SSMS)
  24. 24. ZO O M 기능
  25. 25. 쿼리창 분리
  26. 26. 유용한 함수
  27. 27. 유용한 함수 카테고리 함수 설명 EMONTH() 해당월의 마지막 날짜 반환 날짜함수 날짜 / 시간 , 숫자값을 원하는 포맷으로 FORMAT() 변환 IIF() CASE 구문과 동일한 기능 비교함수 CHOOSE() Index 위치의 변수값을 돌려주는 구문 함수내의 문자열을 하나의 문장으로 연 CONCAT() 결문자열함수 TRY_CONVERT() 문자열 -> 날짜로 전환이 가능한지 확인
  28. 28. 마무리 기본기 활용능력 (SQL Server, ( 모델링 , SQL) Oracle)
  29. 29. [ 광고 ]넥슨 D B 팀 블로그h ttp ://n e xo n d b te am .tis to ry.c o m

    Be the first to comment

    Login to see the comments

  • MINWOOPARK50

    Jan. 2, 2020

활용예시를 통한 Sql server 2012의 향상된 프로그래밍 기능 엿보기

Views

Total views

3,866

On Slideshare

0

From embeds

0

Number of embeds

1,777

Actions

Downloads

23

Shares

0

Comments

0

Likes

1

×