Background Image
  1. [CUBRID inside] HASH SCAN Method

    - HASH SCAN Hash Scan은 hash join을 하기 위한 스캔 방법입니다. view 혹은 계층형 질의에서 Hash Scan이 적용되고 있습니다. view와 같은 부질의가 inner로써 조인될 경우 인덱스 스캔을 사용할 수 없는데, 이 경우 많은 데이터를 반복 조회 하게 되면서 성능 저하가 발생됩니다. 이때 Hash Scan이 사용됩니다. 위 그림은 인덱스가 없는 상황에서의 Nested Loop join과 Hash Scan의 차이를 보여줍니다. NL join의 경우 OUTER의 Row수만큼 INNER의 전체 데이터를 스캔합니다. 이에 반해 Hash Scan은 해시 자료구조 빌드 시 INNER 데이터를 한번 스캔하고, 조회시 OUTER를 한번 스캔합니다. 그렇기 때문에 상대적으로 매우 빠르게 원하는 데이터를 조회할 수 있습니다. 여기서는 Hash Scan의 내부 구조를 프로그램 개발 진행 과정의 흐름으로 작성하였습니다. - IN-MEMORY HASH SCAN CUBRID의 Hash Scan은 데이터양에 따라서 in-memory, hybrid, file hash의 자료 구조를 사용하고 있습니다. 먼저 in-memory 구조부터 살펴보겠습니다. memory의 장점은 random access시 성능 저하가 없다는 점입니다. 하지만 단점은 메모리 크기가 한정되어 있다는 것입니다. 단점 때문에 모든...
    Date2021.10.25 Category제품 여행 By박세훈 Views552 Votes2
    Read More
  2. [CUBRID INSIDE] 부질의와 QUERY REWRITER (view merging, subquery unnest)

    - 부질의란? 질의가 질의안에서 다시 작성되는 것을 부질의라고 합니다. 이러한 부질의 덕분에 우리는 더 쉽게 하나의 질의로 원하는 데이터를 추출할 수 있습니다. 예를 들면 작년 평균 연봉보다 높은 직원을 추출해야 한다면 아래와 같이 부질의를 사용할 수 있습니다. 평균연봉을 구해서 다시 질의를 하지 않고 위와 같이 하나의 질의로 작성이 가능합니다. 너무 당연한 질의의 사용 방법이지만 사용이 불가했다면 많이 불편했겠죠. 이러한 부질의는 특별한 성질을 가지는 데 어느 부분에 작성되느냐에 따라서 가지는 성질이 달라집니다. - scalar subquery : SELECT 절의 부질의. 한 개의 데이터만 조회 가능. - inline view : FROM 절의 부질의. 여러 개의 데이터 조회 가능. - subquery : WHERE 절의 부질의. 연산자에 따라 scalar subquery 혹은 inline view의 성질. 부질의 사용은 질의를 더 다양하게 작성할 수 있도록 하지만 반대로 질의 성능에 악영향을 줄 수 있습니다. - 부질의 실행 순서와 성능 저하 원인 부질의는 주질의보다 항상 먼저 수행되어 임시 결과를 저장해놓습니다. 그리고 주질의가 수행되면서 부질의의 임시 저장된 데이터를 조회하여 원하는 결과...
    Date2022.04.22 Category제품 여행 By박세훈 Views700 Votes1
    Read More
  3. [CUBRID INSIDE] External Sort

    External Sort DBMS는 다양한 상황에서 데이터를 정렬합니다. 사용자 요청으로 ORDER BY 절을 통해 정렬하기도 하고, UNION 절이나 DISTINCT 키워드가 사용되었을 때 중복데이터를 제거하기 위해 데이터를 정렬합니다. 그리고 sort merge join과 인덱스 생성시에도 데이터를 정렬합니다. 이렇듯 DBMS에서 정렬은 여러 상황에서 많이 사용되고 있습니다. CUBRID는 어떻게 데이터를 정렬하고 있을까요? external_sort.c 파일을 분석한 내용을 공유합니다. Merge Sort external sort의 기본이 되는 merge sort부터 살펴보겠습니다. merge sort는 데이터를 분할하고 합병을 반복하면서 정렬하는 알고리즘입니다. 정렬이 필요한 데이터를 분할하는데 분할된 조각을 run이라고 합니다. 분할이 완료되면 두 개의 run을 합병합니다. 위 그림은 분할 이후 합병하는 과정을 나타낸 것입니다. 합병을 진행하면 정렬된 새로운 run이 생성됩니다. 합병을 계속 진행하여 한 개의 run이 남을 때까지 반복하면 데이터 정렬이 완료됩니다. 그렇다면 두 run의 합병은 어떻게 진행이 될까요? depth 2의 두 run이 합병되는 과정을 살펴보겠습니다. 위 그림처럼 정렬이 진행됩니다. 두 run이 정렬되...
    Date2022.08.05 Category제품 여행 By박세훈 Views761 Votes3
    Read More
  4. No Image

    Y2K38, "UNIX Millennium Bug"

    시작하며 당신은 소프트웨어 엔지니어 입니까.  정보시스템 매니저 입니까, 아니면 평범한 회사원 입니까? 당신이 무엇을 하던지간에 50세 이하라면 당신은 Y2K Millennium Bug를 만나실 수 있습니다. 1990년대 후반의 Y2K 이슈 1990년대 후반에 전 세계가 떠들석했던 이슈가 있었는데 연도를 2자리로 표기해서 생긴 “Y2K”입니다.  1997-12-23이 아니라 97-12-23 형태로 말입니다.  90년대 이전 대부분의 정보시스템은 연도를 ‘1997’과 같이 4자리로 표기하지 않고 ‘97’과 같이 2자리로 표현했는데,  이런 관행이 정보시스템이 2000년과 1900년을 구분을 못하는 문제의 원인이 되었던 것이지요.  2000년 10월 23일에 태어난 신생아의 주민등록번호는 001023로 시작되는데 이것은 1900년에 태어난 100살의 노인도 마찬가지 입니다,  주민번호가 고유하지 않을 가능성이 생긴 것입니다.  정보시스템에서는 치명적이라 할 수 있지요.  온 세계의 정보 시스템 관리자가 자기의 시스템에서 사용하는 날짜가 4자리로 되어있는지 검사하고 감리하느라고 분주했고 “Y2K 비즈니스”라는 사업분야가 생길 정도였습니다.  Y2K의 위력에 버금가는 아니 그것보다 클 수 있는 이슈가 Y2K38 Uni...
    Date2017.12.07 Category나머지... By한기수 Views1584 Votes0
    Read More
  5. Windows 10에서 CUBRID linux 버전 사용하기

    MS에서 2016.08.02 기준으로 Windows 1주년 업데이트 버전을 배포했다. 해당 업데이트의 믄 변화에는 bash(Linux 용 Windows 하위시스템 beta)를 사용할 수 있다는 것이다. 해당 버전에서 정상 동작 하는지 테스트를 해 보았으나, 초기 버전에는 linux의 shared memory 관리 부분이 구현이 덜 되어 데이터베이스 서버 엔진은 구동이 가능하지만  쉐어드 메모리를 사용하는 브로커는 정상 작동하지 않았다. 해당 버그는 MS의 GitHUB https://github.com/Microsoft/WSL/issues/92 에 보고 되어 수정이 되었다. Windows 16215 버전 이후 버전 및 작년 가을에 레드스톤3 업데이트 Fall Creators Update 에 와서는 CUBRID가 정상 구동 할 수 있는 shared memory 환경이 되었다. Windows 10 버전를 꾸준히 업데이트만 받았다면, 이제 CUBRID를 bash 환경에서 구동이 가능하다. 일단 기본적으로 활성화되는 기능은 아니기 때문에 제어판 > 프로그램 > 프로그램 및 기능 > Windows 기능 켜기/끄기에서 해당 기능을 활성화 해야한다. 활성화 이후에는 재부팅이 필요 할 수 있다. 또는 MS의 Install the Windows Subsystem for Linux 가이드 (https://docs.microsoft.com/ko-kr/windows/w...
    Date2018.06.27 Category제품 여행 By성진 Views1451 Votes0
    Read More
  6. Visual Studio Code 소개

    시작하며 Visual Studio Code (이하 VSCode) 는 마이크로소프트에서 오픈소스로 개발하고 있는 코드 에디터입니다. VSCode는 활용하기에 따라 메모장과 비슷한 기능을 하기도, IDE(통합 개발 환경) 로써의 기능을 하기도 합니다. 이미 많은 개발자들이 VSCode를 사용하고 있습니다. 그러나 VSCode의 사용이 낯선 개발자들을 위해 이 글에서는 VSCode의 기본적인 사용 방법을 소개드리려고 합니다. 설치 및 시작 VSCode는 공식 웹 사이트(https://code.visualstudio.com)에서 자신의 운영체제에 맞는 버전을 다운로드 받아 설치할 수 있습니다. 설치하고 난 뒤 VSCode를 실행하면 다음과 같은 화면을 마주할 수 있습니다. 이제, 수정하고 싶은 파일을 VSCode 내부로 끌어다 놓거나, Open File, Open Folder 를 통해 파일 및 폴더를 열어 로컬에 있는 코드를 개발할 수 있습니다. 하지만 VSCode의 성능을 온전히 이용하려면 확장(Extension)을 설치하여 응용하는 것을 추천합니다. 확장 (Extensions) 확장은 다음 버튼을 누르거나 Ctrl+Shift+X 를 입력하여 확장 탭에 진입할 수 있습니다. 초기에는 확장이 설치되지 않은 상태인데, Search Extensions in Marketplace 라고 적혀...
    Date2023.12.21 Category나머지... By송일한 Views224 Votes2
    Read More
  7. Scouter를 통한 CUBRID 모니터링

    Scouter를 통한 CUBRID 모니터링 Scouter 확장을 통해 CUBRID에 항목을 모니터링할 수 있습니다. CUBRID 11.0 버전을 기준으로 개발되었으며, CUBRID 10.2.1 버전부터는 전체 기능을 사용할 수 있습니다. Scouter(Server, Client)는 2.15.0 버전부터 기능 사용이 가능하며, 추후에도 Scouter Github에 참여하여 버그 수정 및 기능이 추가됩니다. 현재(2022-01-10) 2.15.0 버전이 최신 버전이며, Multi Agent 지원 및 버그 수정 내용이 PR 되어 있는 상태입니다. 1. Scouter 란? Scouter는 Open Source APM(Application Performance Management) 이며, 어플리케이션 및 OS 자원등에 대한 모니터링 기능을 제공합니다. Scouter 기본 구성 Scouter 제공 정보 ​- WAS 기본 정보 각 요청의 응답속도 / 프로파일링 정보, 서버 요청 수 / 응답 수, 처리 중인 요청 수, 응답속도의 평균, JVM 메모리 사용량 / GC 시간 , CPU 사용량 - 프로파일링 정보 서버 간 요청의 흐름, 각 SQL 쿼리의 수행 시간 / 통계, API 호출 수행 시간, request header 정보, 메소드 호출 시 수행 시간 대표적인 Agent 목록 - Tomcat Agent (Java Agent) : JVM 과 Tomcat WAS 성능 수집 - Host Agent (OS Agen...
    Date2022.01.10 Category제품 여행 Byhwanyseo Views1799 Votes0
    Read More
  8. No Image

    SSH 공개키 인증을 사용하여 암호 없이 편리하게 원격 호스트에 접속하기-!

    SSH 키는 공개 키 암호화 방식 및 인증 확인 응답 인증을 사용하는 SSH 서버에 대해 자체 식별하는 방식입니다. 비공개 서버에 접속하기 위해서는 인증절차를 거쳐야 하는데요, 기존에 비밀번호를 네트워크를 통해 보내는 비밀번호 인증은 네트워크 상에서 ID/비밀번호가 그대로 노출되는 문제가 있고, 접속할 때마다 입력해야 하는 번거로움이 있습니다. SSH 키는 이와 달리 공개키 암호 방식을 사용하여 서버에서 인증받을 수 있으며, 암호를 생략하고 원격 호스트로 접속할 수 있습니다. 과정은 아래와 같습니다. 1. 로컬 호스트에 키 생성(private key, public key) 2. 원격 호스트에 public key 복사(public key 만으로는 복호화할 수 없기 때문에 여러 서버에 복사해도 무관) 3. 로컬 호스트에서 원격 호스트로 ssh 접속 4. 원격 호스트에서 public key로 암호화 된 정보를 로컬 호스트에게 주고, 로컬 호스트는 private key와 원격 호스트의 public key를 이용하여 복호화 수행 5. 인증 완료 시 암호 입력 필요 없이 접속 가능 실제 명령어 수행 과정을 살펴보도록 하겠습니다. 1. 로컬 호스트에 키 생성 ssh-keygen 명령어를 이용해 private/public 키를 생성합니다. s...
    Date2020.01.03 Category나머지... By허서진 Views17437 Votes0
    Read More
  9. SQLGate for CUBRID로 데이터베이스를 다뤄보자

    2019년 7월 30일, SQLGate for CUBRID 버전이 출시되었습니다. 아래 SQLGate 홈페이지에서 출시내용을 자세히 확인할 수 있습니다. https://support.sqlgate.com/hc/ko/articles/360033815393?utm_source=cubrid_com&utm_medium=main_slider&utm_campaign=cubrid_launch 지금부터 SQLGate for CUBRID로 CUBRID DB를 다뤄보고 활용해보겠습니다. 1. 설치 https://www.sqlgate.com/product/download 에 접속하여 SQLGate for CUBRID를 다운로드하고 실행하면 설치가 완료됩니다. 2. SQLGate for CUBRID 라이선스 CUBRID 또는 SQLGate 홈페이지에서 SQLGate for CUBRID 사용에 대한 라이선스를 확인할 수 있습니다. 라이선스 종류는 다음과 같으며 필요한 라이선스를 구입하여 사용하시기 바랍니다. - 기업용 라이선스 보기(https://www.sqlgate.com/pricing/perpetual) - 인디개발자 라이선스 보기(https://www.sqlgate.com/pricing/indieLicense) - 구독 서비스 보기(https://www.sqlgate.com/pricing/subscription) ※무료 버전을 다운로드 받으시면 14일 동안 전체 기능을 경험해 볼 수 있습니다. 3. SQLGate 실행하기 - 가입한 이메일 주소로 로그인 한 뒤 확인을 클...
    Date2019.12.10 Category제품 여행 By정훈 Views2457 Votes0
    Read More
  10. Oracle Database SE2 살펴보기

    오라클의 FY 2016 3사분기 시작일인 2015년 12월 1일을 기점으로 Oracle Database Standard Edition 1과 Standard Edition 제품 판매가 중단되었으며, Standard Edition 2가 새롭게 추가 되었습니다. 또한, 2016년 8월 31일자를 기해서 Oracle SE1, SE에 대한 서포트와 보안 패치, 업그레이드 서비스가 종료되었습니다.   DBMS 시장의 강자인 Oracle Database 제품군에 변화가 생긴 것으로, 이러한 정책 변화는 다수의 사용자들에게 직접적인 영향을 주는 사안이라 국내 IT 매체에서도 이슈화를 할 것으로 생각했었습니다. 그런데, 당시 관련 기사를 검색해 보면 CIO Korea의 외신 번역기사와 데이터넷 기사 외에는 전무한 상태였으며, 개인적으로는 ‘왜 관련 기사를 쓰지 않을까?’하고 약간 의아한 생각이 들기도 했었습니다.   -> "오라클 데이터베이스 만료일에 주의하라" 애널리스트 경고 (CIO Korea, 2015-11-13) -> “SMB 시장에서 脫 오라클 바람 예고” (데이터넷, 2016-03-02)   어느덧 2년 가까운 시간이 지났기 때문에 대부분의 사용자 분들이 Oracle Database SE2 관련 정보를 습득하고 계시겠지만, 간략하게 정리를 해 보도록 하겠습니다.   구분 SE1 SE SE2 릴리...
    Date2017.10.27 Category시장 살펴보기 By정병주 Views12931 Votes0
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 16 Next
/ 16

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales