반응형
블로그 목적
- SQL 튜닝에 대해서 공부및 정리후 나만의 노하우와 지식을 공유한다.
블로그 요약
- SQL 튜닝에 대해서 알아본다.
블로그 상세 내용
SQL 튜닝? 먹는거임?
- 여러분들은 언제 SQL 튜닝이라는 말을 아시게 되셨나요?
- 보통 IT 시스템 구축 프로젝트를 진행하신 분들께서는 리팩토링과 더불어 SQL 튜닝에 대해서 들어보셨을건데요..
- 하지만, "SQL 튜닝" 이 무슨일을 하는것인지에 대해서 정확히 아는 사람이 드문것도 사실입니다.
- 거의 "SQL 튜닝" 은 DBA 만 하는거 아니야? 라는 고정관념에 빠져있을때가 많이 있죠..
- 특히, 자기가 2년차 아래의 개발자이면, "SQL 튜닝" ? 많이 들어봤는데...(잘모르겠네...) 라고 말씀하실건데요..
- 이번 블로그를 통해서 "SQL 튜닝"이 무엇인지? 정확하게 간략하게 정리해 보려고 합니다.
- 아인슈타인이 아래말을 했다죠?
- "단순하게 설명할 수 없다면, 아직 잘 모르는 것이다" 라고요..
- 그래서, 이번 블로그는 최대한 단순함을 목적으로 하고 있습니다.
- 누가 "SQL 튜닝" 이 몬가요? 물어보면..
- 아! "SQL 튜닝"은 무엇입니다!! 조건 반사(?)적으로 나올 수 있게요..^^;
- 누가 "SQL 튜닝" 이 몬가요? 물어보면..
SQL 튜닝이란?
- SQL 튜닝이 갖는 정확한 의미는 무엇일까요?
- 그전에 우리는 DBMS 란 용어를 머릿속에 넣어두어야 합니다.
- DBMS에 대해서 알아보면..
- Database Management System 의 약자인데요...
- DBMS의 종류를 잠깐 알아보면..
- ORACLE 사의 ORACLE
- ORACLE 사의 MySQL:
- 알티베이스 사의 Altibase
- IBM사의 DB2
- 마이크로소프트사의 MS-SQL
- 등등이 존재하죠..
- 해당 제품들은요 효율적인 데이터베이스 관리를 위해서 개발된 소프트웨어라고 보시면 되는데요...
- 그럼 SQL 이란 무엇일까요?
- SQL 에 대해서 알아보면...
- Structured Query Language 의 약자인데요..
- SQL 종류는 크게 3가지로 구분됩니다.
- DML(Data Manipulation Language)
- 테이블의 데이터를 조작하는 명령어
- INSERT (삽입)
- DELETE (삭제)
- SELECT (조회)
- UPDATE (갱신)
- 테이블의 데이터를 조작하는 명령어
- DCL(Data Control Language)
- 데이터베이스, 테이블 접근권한, CRUD 권한정의하는 명령어
- GRANT (데이터베이스 객체 권한부여)
- REVOKE (부여된 객체권한 취소)
- 데이터베이스, 테이블 접근권한, CRUD 권한정의하는 명령어
- DDL(Data Definition Language)
- 데이터베이스, 테이블 스키마 정의, 수정, 삭제 하는 명령어
- CREATE (데이터베이스 객체를 생성)
- DROP (데이터베이스 객체 삭제)
- ALTER (기존 데이터베이스 객체 재정의)
- 데이터베이스, 테이블 스키마 정의, 수정, 삭제 하는 명령어
- DML(Data Manipulation Language)
- 즉, SQL 은 데이터베이스를 만드는 것은 물론, 만들어진 데이터베이스에 데이터를 입력및 변경,삭제하는 작업과 데이터베이스조회등등의 작업을 위해서 필수언어라고 보시면 됩니다.
- SQL 에 대해서 알아보면...
- 그럼, SQL 을 알아야하는 사람은 누구일까요?
- DBA 만 알아야 할까요? 아님 개발자도?
- 맞습니다.
- DBA 와 개발자 모두 알아야하는 언어입니다.
- 그래야, 소통을 할 수 있겠죠...(무엇이든 내가 알아야 소통이 됩니다.!!)
- 즉, SQL 도 하나의 언어인데요..
- 예를들어 C++이란 언어가 있지만, 해당 문법은 정형화가 되어있습니다.
- 하지만, 같은 프로젝트의 요구사항을 가지고 코딩을 하더라도 개발자마다의 코딩하는 스타일및 방식은 천차만별인데요...
- 문법과 어법에 맞게 제대로 쓰는 사람이 있는가 반면에, 그렇지 못한 사람도 있을 수 있을것이고요...
- SQL 도 한가지 언어이기때문에, 같은 요구사항이지만, 개발자마다, 아님 DBA마다 똑같은 SQL을 작성할 가능성은 현저하게 떨어지죠...
- 하지만요..
- 이런차이점이 때때로, 전체 성능에 엄청난 차이를 불러온다는 사실을 아시나요?
- 그래서, 개발자는 SQL 을 "잘 사용하는 방법"에 대해서 항상공부하고 정확히 숙지해야합니다.
- 너무 돌아왔는데요...
- SQL 튜닝!! 무엇일까요?
- 한마디로 요약하자면, 성능을 감안해서 SQL을 잘쓰는것!!
- 그것이 바로 SQL 튜닝이다라고 머릿속에 넣어두시면 좋을것 같네요..
- 즉, SQL 튜닝은 최소한의 CPU 및 I/O 메모리를 사용해서 최대한 빠른 시간 내에 원하는 데이터 작업을 수행하도록 만드는 것을 목표로 하고 있습니다.
- 보통 이와 같은 튜닝을 전문으로 하는 사람을 "튜너" 라고 말합니다.
- 아무튼 이번 블로그, "SQL 튜닝이란 무엇인가?" 에 대한 간단한 정의는 여기까지고요..
- 다음 블로그는
- "그럼, SQL 튜닝이 왜필요하고, 언제하는가?"에 대해서 공부해서 나눠보도록 하겠습니다.
- 그럼 결론을 정리해보겠습니다.
결론
- 하나, DBMS에 대해서 알아보면..Database Management System 의 약자입니다.
- DBMS의 종류를 잠깐 알아보면..
- ORACLE 사의 ORACLE
- ORACLE 사의 MySQL:
- 알티베이스 사의 Altibase
- IBM사의 DB2
- 마이크로소프트사의 MS-SQL
- 가 존재하고요..
- DBMS의 종류를 잠깐 알아보면..
- 둘, SQL 에 대해서 알아보면...
- Structured Query Language 의 약자인데요..
- SQL 종류는 크게 3가지로 구분됩니다.
- DML(Data Manipulation Language)
- 테이블의 데이터를 조작하는 명령어
- DCL(Data Control Language)
- 데이터베이스, 테이블 접근권한, CRUD 권한정의하는 명령어
- DDL(Data Definition Language)
- 데이터베이스, 테이블 스키마 정의, 수정, 삭제 하는 명령어
- DML(Data Manipulation Language)
- 셋, SQL 튜닝!! 무엇일까요?
- 한마디로 요약하자면, "성능을 감안해서 SQL을 잘쓰는것!!"
- 그것이 바로 SQL 튜닝이다라고 머릿속에 넣어두시면 좋을것 같네요..
728x90
300x250
'좋아하는 것_매직IT > 100.면접준비' 카테고리의 다른 글
Java 와 spring 관련 면접 깔끔 정리 (0) | 2023.08.22 |
---|---|
SpringBoot 관련 백엔드 기술 면접 질문및 답변 깔끔 정리 (0) | 2023.03.17 |
Java관련 백엔드 기술 면접 질문및 답변 깔끔 정리 (0) | 2023.03.17 |
컴파일과정 및 자바프로그램 개발 단계를 머릿속에 넣어두자 (0) | 2022.02.21 |