SQL Slow Query 속도개선(튜닝) 가능합니다
안녕하세요. 다양한 업무의 데이터베이스 설계와 성능개선, Slow 쿼리 속도개선(튜닝)을 진행하고 있는 우리비엔씨입니다.
신규 DB모델에 대한 설계/구축은 업무전산화에 있어서 가장 기본에 되는 분야합니다. 그렇게 자체 설계된 DB는 최적의 환경에서 잘 구동되어야 하는것도 기본이구요.
뿐만아니라 저희는 타 데이터베이스 시스템에 대한 속도개선(튜닝)도 같이 진행 가능합니다.
시스템 아키텍처 개선이나 DBMS Optimizer에 대한 직접적인 관여는 제한적으로만 진행하지만, SQL Statement에 대한 최적화는 모두 가능합니다.
Oracle, SQL SERVER, MYSQL, MariaDB, PostgreSQL, SQLite 등이 주 사용 RDBMS입니다.
금융권(삼성생명 등), 대기업, 유통, 대학 등에서 다양한 프로젝트 경험을 가지고 있으며, 수십억건의 대용량 데이터베이스를 SQL, View, Procedure, Function 등을 활용하여 다양한 방법으로 시스템을 구축하거나 튜닝가능합니다.
Slow쿼리에 대한 속도개선에 자세한 상담이 필요하시면 아래 연락처로 편하게 연락주시면 고맙겠습니다.
이메일: admin@wooribnc.com // lwjvegas@gmail.com
연락처: 0 7 0 - 4 8 0 9 - 7 7 6 9 // 0 1 0 - 5 1 7 7 - 8 0 5 5
*KOSA 한국소프트웨어산업협회 정식 등록업체
*KOSA 소프트웨어개발자경력: 특급기술자, 정보처리기사
*가천대학교 가족회사 협약업체
# DB모델링 및 튜닝에 대한 생각...
전산시스템을 구축하기 위해서 그 기반이 되는 데이터베이스 설계는 정말 중요하죠.
설계자 즉, 데이터베이스 모델러는 건물의 뼈대를 설계하는 설계자와도 같습니다.
건물은 완공후에도 오랜기간 안전하고 튼튼하게 유지되어야 할뿐만 아니라 원래의 상태와 기능을 유지해 주어야 합니다.
DB설계와 구축에도 그 절차와 전문적인 모델링 기법이 명확히 존재합니다.
설계를 위해 요건을 취합하고 분석하는 단계부터 개념/논리/물리적으로 어떤 모습으로 구축할지에 대한 설계도(ERD) 작성, 구축할 DBMS 선택, 과거 데이터에 대한 이관, Primary Key, Index, View, Procedure, Function 등의 적용 시나리오가 구체적이고 가시적으로 도출되어야 합니다.
1년뒤 또는 10년뒤에도 일관된 성능유지가 가능하도록 설계해야 하며 적은 용량의 데이터를 가지는지 대용량의 데이터를 가지는지,
데이터간에 단순한 관계를 가지는 경우와 매우 복잡하고 깊은 관계를 가지는 경우도 충분히 분석하여 설계에 반영되어야 합니다.
가장 중요한 것은 고객의 모든 요구사항이 충분히 도출되었는지에 대한 확신이 필요합니다.
모델러 자신의 경험과 기법만을 고집하며 자기 맘데로 설계하여 제시하는 모델러들도 꽤 많은데 이렇게되면 그 모델러(설계자)의 설계사상안에서만 돌아가는 시스템이 되버리고 맙니다.
구축하려는 전산시스템의 사상이 충분히 고려된 데이터베이스는 어플리케이션간과의 연동도 매우 원할한 상태가 되며, 개발 편의/생산성, 확장성, 유지보수에도 직접적으로 도움을 주게 됩니다.
잘 설계된 데이터베이스는 운영도중에 발생하는 예외상황에서도 신속하고 재치있게 대응이 가능할 뿐만 아니라 확장성이 매우 뛰어납니다.
개발 이후에 추가개발 요건이 발생하더라도 얼마든지 DB설계도를 수정하고 확장하기가 매우 용이하여 고객의 요구사항을 충분히 반영할 수 있게 되는것이죠.
DB가 잘 구축되었다고 가정한다면, 이제는 어플리케이션(프로그램)에서 개발자의 DB를 다루는 역할과 기술이 필요합니다.
특히 SQL을 잘 다루어야 하는것은 DB 모델러의 역할만이 아니라 일반 개발자가 가져야 할 기본 기술이라고 생각합니다.
Table(PK, Index포함), Procedure(프로시저), View(뷰), Function(함수)을 SQL이라는 언어를 이용하여 DB와 프로그램 화면 사이에서 제대로 역할을 해주어야 합니다.
프로그램 로직을 SQL로 구사할것인지 고유 소스코드로 구사할것인지를 적절히 안분하여 적용하게되면 그 시너지효과가 매우 뛰어납니다.
매우 짜임새있고 논리적으로나 물리적으로 간단 명료하게 개발해 나갈 수 있으며, 확장성과 유지보수 싯점에도 신속/정확하게 대응할 수 있게됩니다.
이 모든게 결국 고객의 서비스와 만족도에 영향을 주게되고, 개발자 자신 또한 유능감과 자신감을 유지하며 역할을 해 나가게 됩니다.
마지막으로, DB 속도개선(튜닝)에 대해서 이야기 하겠습니다.
전산시스템의 특정업무가 느려지는 이유는 여러가지 이유들이 있겠습니다만 적어도, 설계된 DB안에서 문제가 발생하는일은 없도록 해야 합니다.
SQL은 프로그램 언어와는 다르게 집합적 개념에서 데이터를 바라보며 구사해야 합니다. 많은 시간과 노력을 투자해야만 제대로 된 SQL을 구사할 수 있게 됩니다.
뷰(View)와 Procedure도 SQL을 이용하여 작성하는데, 데이터의 집합적 함수개념과 PK, Index의 조합을 잘 이용해야 하며 DBMS의 Optimizer라는 엔진의 원리를 잘 이해하고 있어야 합니다.
이렇게 DB의 주요 기술을 잘 아우를줄 알게되면 SQL을 잘 다룰 수 있는 기반이되며, 역으로 Index와 PK를 조정할 수 있게되고 나아가 최적화(튜닝)도 할 수 있게됩니다.
SQL 쿼리를 튜닝할 수도 있고, 뷰(View)나 프로시저(Procedure)도 아주 멋지게 튜닝할 수 있습니다.
수시간 또는 수분씩 걸리는 분석용 SQL Slow Query(쿼리)가 몇분 또는 몇초로 끝나버리는 멋진상황의 기분은 경험한자만이 느낄 수는 특권이죠!
이 글을 작성하고 있는 저는 대용량/대규모 프로젝트 경험과 정규 교육이수를 통해 데이터베이스 모델링과 튜닝을 다루고 있습니다.
전산시스템 개발, 데이터베이스 구축분야에서 프로그램개발업체를 운영중에 있사오니 각종 전산개발이나 DB구축이 필요하시면 편하게 연락주시면 고맙겠습니다.
홈페이지: http://www.wooribnc.com
이메일: admin@wooribnc.com // lwjvegas@gmail.com
연락처: 0 7 0 - 4 8 0 9 - 7 7 6 9 // 0 1 0 - 5 1 7 7 - 8 0 5 5
*KOSA 한국소프트웨어산업협회 정식 등록업체
*KOSA 소프트웨어개발자경력: 특급기술자, 정보처리기사
*가천대학교 가족회사 협약업체
감사합니다.
댓글
댓글 쓰기