본문 바로가기

DB

(24)
데이터베이스 성능 개선 포인트! 데이터베이스 Call 수 줄이기, 네트워크 부하 줄이기(array processing, 부분 범위 처리) 데이터베이스 SQL 쿼리 호출(Call) 수 줄이기 DB 성능 최적화를 하기 위해서 가볍게 개선 포인트를 알아보는 시간을 지난 포스트에 이어 갖는다.지난 포스트에서는 SQL 쿼리가 날라왔을 때 SQL 쿼리를 파싱하고 실행 계획을 캐시하고 최적화하는 부분을 살펴봤다.이번 포스트에서는 애초에 데이터베이스에 쿼리를 적게 날리는 즉, 호출 수를 줄이는 부분과 오고가는 데이터의 양(네트워크 부하)을 줄이는 부분을 알아볼 것이다.(다음 포스트에서는 데이터베이스가 파일시스템(ex. SSD)과 데이터 I/O하는 부분에서 최적화를 알아볼 것이다. 아래 그림을 참조하면 좋다.)데이터베이스 Call과 성능 위에서는 편의를 위해 애플리케이션을 통해 호출되는 Call이 전부인양 말했지만 엄밀히 따지면 Call을 종류는 다양하다..
SQL 파싱 처리 과정과 성능 향상 포인트 최적화!(하드파싱/소프트파싱 차이, SQL 쿼리 파싱 최적화 과정, 바인드 변수 사용) SQL 성능에 큰 영향을 미치는 병목 진단하기 지난 포스트에서 오라클의 구조에 대해서 알아보았다.이제 SQL 쿼리를 처리하는 과정을 알아보고 어느 부분이 관심을 갖고 파헤쳐봐야 하는 부분인지 가볍게 짚어보려고 한다.크게 나눠서 어느 부분이 대용량 SQL 처리에서 성능에 영향을 끼치는지를 확인하고 하나하나 개선하는 방법을 살펴보려고 한다. 다른 포스트에서. (지금은 큰 맥락만 이해)SQL 처리 과정과 성능 Point 1. SQL 쿼리 입력!2. SQL Parser가 SQL 문장에 문법적 오류가 없는지 확인 -> 문법적 오류가 없으면 의미상 오류가 없는지 확인- 의미상의 오류는 없는 컬럼을 쓴다든지, 권한이 없는 객체를 사용했다든지 하는 오류3. SQL 문장을 해시 함수로부터 변환한 후, 해시 값으로 라이브..
데이터베이스 아키텍처, 오라클 구조 완벽 정리 (프로세스 + 파일 구조 + 메모리 구조) 데이터베이스 아키텍쳐(Database Architecture) 데이터 베이스 아키텍쳐 = 프로세스 + 공유메모리 영역 + 디스크(물리적 파일)영역 Oracle이나 MSSQL 같은 DBMS의 구조를 살펴보면 위와 같이 구성되어 있다. (위 사진은 오라클 구조) 프로세스(Process) * oracle이 리눅스(linux)에서는 프로세스 단위로 생성되고 운영된다. SQL server(mssql)는 쓰레드 기반 아키텍처고 oracle이 윈도우에서는 해당 프로세스를 쓰레드로 대체한다. 어차피 같은 역할을 수행하므로 프로세스로 통칭한다.프로세스는 크게 서버 프로세스(Server process)와 백그라운드 프로세스(Background process)로 나뉜다. - 서버 프로세스서버 프로세스는 사용자 프로세스(클라..
Redis 소개와 설치 방법, 보안 설정 방법(ip 허용, 비밀번호 설정)등 빠르게 세팅하기 Redis란? : Remote Dictionary System의 약자로 쉽게 말하면 "인메모리 원격 캐시 서버" 정도로 생각하면 된다.흔히 사용하면 데이터베이스와 크게 다르지 않아 NoSQL DBMS로 분류할 수도 있고 인 메모리라는 특성에 때문에 In memory 솔루션으로 분류할 수도 있다.저 같은 초급 개발자 수준에서 설명하면 DB랑 다를게 없다. Oracle이나 MySQL처럼 redis-server process를 ip, port에 띄워놓고 접근해서 저장하고 가져다 쓰고하는게 전부다.더 이상 설명할게 없다. 마치 mybatis가 따로 책으로 나오지 않는 것처럼 redis 공식 홈페이지뿐만 아니라 일반 블로그같은 사이트만 봐도 충분히 이해하고 사용가능하기 때문에 redis책도 따로 없다. (물론 최..
개인 마트 관리 시스템 DB 설계하기 (ERD 만들기, DB 구조, a.k.a 쇼핑몰DB) 개인 마트 관리 시스템 DB 테이블 설계하기 이 포스트를 계속 수정하면서 "마트 관리 애플리케이션"의 테이블을 만들어 볼 예정이다.사촌 형 부탁으로 마이크로 애플리케이션을 만들기 때문에 일반적인 쇼핑몰 or 마트 관리앱과는 다를 수 있다.* 배송X, 재고X, 결제(아임포트)X, 후기X, 댓글X- 필요한 테이블고객테이블상품테이블상품카테고리테이블주문테이블주문상세테이블장바구니테이블 (장바구니는 쿠키(?)로 짠다고 들었는데 모르겠다..)장바구니는 쿠키로 저장하기로 결정했다. 디비로 구성할 수도 있는것으로 알고 있는데 어떤 것이 더 좋은? 현명한 방법인지는 모르겠다.MySQL상에서 하고 있어서 워크벤치로 reverse engineer.. 를 실행시켜서 설계한 테이블의 ERD를 가져왔다.최대한 미니멀(?)하게 구성..
DB 튜닝 입문 (1) 오라클의 구조 (진짜 처음에는 튜닝하기 전에 구조를 알아야 한다!) 그림으로 공부하는 오라클 구조 * DB 튜닝 입문 포스트는 "그림으로 공부하는 오라클 구조" 라는 책을 읽고 정리한 내용이다.* MySQL, Oracle, PostgreSQL, MSSQL등 관계형 데이터베이스 중 아무거나 하나를 사용해본 경험이 한번이라도 있는 사람이 보는 것이 좋다. (단순 SQL문 작성 가능한 정도(select, insert, update, delete, commit, rollback)* 블로그 필자는 아직 초급개발자도 아니라서 실무에서 튜닝을 하지 않지만 관심이 생겨 보는 수준.기본 마인드 1. 병렬 처리를 가능케 하고 높은 처리량을 실현2. 빠른 응답 중시3. 커밋한 데이터는 지킴데이터베이스도 결국 디스크 I/O 데이터베이스도 근본적으로 데이터를 디스크(HDD, SSD)에 데이터를..
SQLD 후기 (26회 SQL개발자 시험 합격 후기) SQLD 합격 후기 (제 26회) SQLD 시험 후기시험보고난 직후에 쓴 후기는 다른 포스트에서 했기때문에 간략하게 적습니다.일단 인증...부터 합니다만 성적이 말이 아닙니다.후기남기기도 민망한 턱걸이 합격.직후에 적은 후기에 말씀드렸다시피 주관식은 다 틀렸다고 했기때문에 SQL 기본 및 활용에서 점수가 안좋을 것이라고 예상은 했습니다.근데 데이터모델링의 이해에서 반타작했다는건... 잘 모르겠습니다.개인적으로는 합격해서 다행이고 기쁜일인데 SQL 쿼리작성 실력에서 전성기때 본 시험치고는 안타깝습니다.사설은 여기까지 하고 다른 분들에게 도움되는 방법을 소개하겠습니다.한국데이터베이스진흥원에서 나온 'SQL 전문가 가이드' 책에서 95퍼센트 이상 나옵니다.그러나 그 95퍼센트가 내용상 나온 것이라는 점이 중요..
SQL 활용 - 절차형 SQL 절차형 SQL 일반 개발 언어처럼 절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 제공함.(PL/SQL , T-SQL등)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788891. 프로시져CREATE OR REPLACE PROCEDURE p_DEPT_insert( v_DEPTNO in number, v_dname in varchar2, v_loc in varchar2, v_result out varchar2)IScnt number := 0;BEGIN SEL..