본문 바로가기

IT성장일기

[스터디/친절한SQL튜닝]소트튜닝

스터디를 하면서 좋은 점 중 하나는 다른 사람들이 이해하기 어려웠던 내용을 들으면서 나도 다시한번 정리할 수 있다는 것이다. A는 B다 라고 하면 곧이 곧대로 외우는 편이지 왜  B일까 잘 궁금해 하지 않는 편이라 스터디를 하는 것이 꽤나 도움이 된다. 이번 스터디에서 나왔던 질문사항을 다시 한번 정리해보고자 한다.

 

1. 2Tier 환경과 3Tier 환경이란?

2Tier 환경은 클라이언트와 DB 로 구성된 환경이고 3Tier는 그사이에 was가 추가된 환경이다. 나도 이번 회사에 이직하면서 입사교육때 사실 처음 들었던 개념이었는데 친절한SQL튜닝에서 중요하게 다루는 부분이 아니라서 이부분을 궁금해 할거라고 생각지 못했다. AP를 통한 접속은 3tier라고 보면 된다라고 설명했는데 배치는 그럼 2Tier냐는 질문에 약간 아리송했었다. 직접 접속 하니까 2Tier인거 같기는한데 AP와 명확한 차이 설명이 어려웠다.  아래는 구글링을 통해 알게된 블로그의 2tier, 3tier 관련 설명이다. 결론은 배치는 2tier환경이다.

https://jocoma.tistory.com/m/251

 

2-tier란?

2-tier 1) 2-tier란? 2-tier란 ec2와 같은 웹서버가 DB에 연결되는 형태를 말한다. (DB가 없이 웹 서버만 있다면 프론트엔드 개발만 가능하지만 DB가 있으면 백엔드도 사용이 가능해진다. 프론트엔드에 존

jocoma.tistory.com

 

2. 디스크I/O는 부분범위 처리를 불가능하게 하는 성능 저하 요인이다?

디스크I/O라고 해서 부분범위 처리가 불가한 것이 아니라, 소트연산 그 자체가 부분범위 처리가 불가하여 성능저하 요인이 된다. 소트는 크게 메모리 소트와 디스크 소트로 나뉘는데 처리할 데이터량이 많을때 디스크 소트가 발생한다. 만약 디스크I/O만 부분범위 처리가 불가능하다면 메모리 소트만 발생하는 적은 데이터량을 소트할 경우에는 부분범위 처리가 가능하여야 한다. 하지만 적은 데이터량이라 할지라도 소트연산을 위해서는 전체범위를 읽지않을 수 없다. 관련 블로그 글을 첨부한다.

https://devjino.tistory.com/105

 

부분범위 처리와 전체 범위처리

user 테이블이 있는데 1000만건입니다. select * from [user] 를 실행하면 언제 부터 결과를 받을 수 있나요? 읽는 데이터 모두가 답입니다. 데이터베이스는 운반 단위에 차면 바로 바로 응답합니다. 그

devjino.tistory.com