본문 바로가기
728x90
반응형
SMALL

IT/DBMS 공통28

Oracle DBLink 와 비슷한 MySQL FEDERATED ENGINE 오라클에서는 물리적으로 떨어져 있는 삽입/삭제/수정/조회/조인 등의 서버간의 데이터 이동이 요구될 때, DBLink 라는 녀석을 사용한다...... 고 하지만, 맞을까봐 개인적으로는 사용만 해보고 실제로 만든 적은 없다.. --;; 한 가지 분명한 것은 synonym이 설정되어 있지 않은 이상, @를 사용하여 접근 한다는 것뿐 암튼 간에, 물리적으로 떨어져 있지만, 논리적으로는 바로 옆의 테이블인양 사용하는 것은, Performance에 상관 없이 매력적이고, 편리한 것이라는 점에 이견이 없을 듯 하다. 그렇다면, Oracle에는 있는 이 DBLink 기술이, MySQL에도 있지 않을까? 그래서, 여기 저기 물어도 보고, 레퍼런스 메뉴얼도 달달이 읽다가, FEDERATED ENGINE 이라는 녀석을 발견.. 2014. 4. 7.
Select 후 바로 Update Function Select 후 바로 특정 column 을 +1 해야 하는 경우에 사용하는 Function 만들기 요구사항 1. 통신시 사용하는 전문번호를 DB에서 관리하고자 한다.요구사항 2. 전문번호는 매일 1번부터 시작한다.요구사항 3. 전문번호는 겹치지 않는다. Select 후 시퀀스 넘버를 바로 update 해야 하는 경우 Spring Service Interface 를 하나의 Transaction으로 묶어서 처리 하면두번의 query를 날려도 무관하나 하나의 쿼리를 통해 처리하는 것이 더욱 시퀀스 넘버를 안전하게 관리할 수 있기 때문에 아래와 같이Function을 만들어 처리 한다. (Select 후 바로 update) CREATE FUNCTION kbsavings_get_msgno () RETURNS INT.. 2014. 3. 18.
옵티마이저 - 상세 (옵티마이저 목표의 선택, 실행계획의 고정화) 옵티마이저가 수행하는 최적화 작업이란 일종의 시뮬레이션 이며 시뮬레이션은 모형화에 들어가는 요소값들을 얼마나 정확하게 부여했는가에 대한 부분과어떤 목표에 대한 시뮬레이션을 했느냐에 따라 그 결과가 크게 달라진다. 옵티마이저 모드의 종류마라톤처럼 일부라도 먼저 통과하는 것을 목표로 하는 방법을 '초기결과 최적화(First_rows)' 라 부른다.반대로 구보와 같이 전체가 모두 수행되는 것을 목표로 하는 방법을 '전체결과 최적화(All_rows)' 라 부른다.육상 예선 경기에서 5위까지 결선에 진출한다면 해당 경기의 목표는 1위가 아닌 5위 안쪽이 될 것이다. 이와 매우 유사한 개념이 적용된 것이FIRST_ROWS_n 으로 지정하는 방법이다. (커트라인에 따라 최적화의 목표가 달라지는 것)비용기준 옵티마이저.. 2014. 3. 11.
옵티마이저 1. 옵티마이저 소개가. 옵티마이저란?옵티마이저(Optimizer)는 SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진이다. 사용자가 구조화된 질의언어(SQL)로 결과집합을 요구하면, 이를 생성하는데 필요한 처리경로는 DBMS에 내장된 옵티마이저가 자동으로 생성해준다. 옵티마이저가 생성한 SQL 처리경로를 실행계획(Execution Plan)이라고 부른다. 옵티마이저의 SQL 최적화 과정을 요약하면 다음과 같다.사용자가 던진 쿼리수행을 위해, 후보군이 될만한 실행계획을 찾는다.데이터 딕셔너리(Data Dictionary)에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정한다.각 실행계획을 비교해서 최저비용을.. 2014. 2. 25.
728x90
반응형
LIST