[ Oracle SQL튜닝. 접근경로(Access Path) ]

 

1. Access Path 종류

    a. Direct Access

    b. Indes Scan

    c. Full Table Sacn

 

1. Direct Access

    a. ROW_ID를 이용한 DATA 접근

 

2. Index Scan 세분화

    a. UNIQUE SCAN

         - 데이터를 1건 찾은 후 동일한 중복값이 있을 수 없기 때문에 검색을 바로 중지함

         - 예) unique index key가 존재하는 컬럼에 = (equal)조건일 경우

                 SELECT * FROM EMP_TABLE WHERE emp_no = 1234;

    b. RANGE  SCAN

        - Equal조건에 의한 Index Range Scan

          . 동일한값이 존재 할 수 있기 때문에 해당 조건에 1개 이상의 값을 리턴 할 수 있음.

          . 예) non unique index key가 존재하는 컬럼에 = (equal)조건일 경우

                SELECT * FROM EMP_TABLE WHERE emp_name = '강감찬';

        - 범위 검색 조건에 의한 Index Range Scan

          . 예) SELECT * FROM EMP_TABLE WHERE emp_no > 1234;

        - 테이블에 접근하지 않는 Index Range Scan

          . 예) SELECT emp_no FROM EMP_TABLE WHERE emp_no > 1234;

    c. FULL SCAN
        - Index Fast Full Scan과 Index Full Scan이 존재

        - 인텍스 Block을 처음부터 끝까지 읽기

        - 예) SELECT /*+ USER_MERGE(emp_large, depart) */  dname, ename, job_sal

                   FROM emp_large a, depart b

                 WHERE a.deptno = b.deptno ;

    d. SKIP SCAN

    e. FAST FULL SCAN

'(DB) Oracle 튜닝 > 쌍용튜닝교육' 카테고리의 다른 글

Oracle SQL튜닝. Optimizer  (0) 2018.02.24
Oracle SQL튜닝. 성능튜닝 Tool  (0) 2018.02.24
Oracle 기본 내용  (0) 2018.02.20
Oracle - db link  (0) 2018.02.10
실행계획 - join  (0) 2018.02.10
Posted by 농부지기
,

ROWID : Pseudo Column(가상컬럼)
Soft Parsing : 기존 parsing된 sql실행계획을 기준으로 sql수행
Hard Parsing : 기존 parsing된 sql이 존재하지 않아 신규로 실행계획을 생성 후 sql수행
Select수행구조
  . Data Buffer Cache
  . Cache :
 
SQL 수행과정
  . Parsing -> Execute -> Fetch

Logical Read : 메모리상에서 읽는 것

                        Current + Query

Physical Read : 데이터파일을 읽는 것

                          DISK

 
Server Process
   . Dedicated Server Process : User Process와 1:1로 연결되는 방식
                                Default option
   . Shared Server Process    : 1개의 Server Process를 여러 User가 공유하는 방식
  
실행계획 보는 방법
  . EXPLAIN PLAN명령어
  . AUTOTRACE OPTION
  . SQL Trace & TKPROF

Parallel Process
  . 힌트 : /*+ PARALLEL(TABLE명, Process갯수) */

 

 

대량의 데이터 조회 시

  . Array Fetch 의 개념 필요

  . 부분범위 처리와 전체범위 처리 적절하게 사용해야 됨

      - 부분점위 처리 : 10만 row를 보여줘야 될 때 1만row씩 client에 전송하는 방식

      - 전체범위 처리 : 10만 row를 부여줘야 될 때 10만 row 전체는 한번에 client에 전송하는 방식

'(DB) Oracle 튜닝 > 쌍용튜닝교육' 카테고리의 다른 글

Oracle SQL튜닝. 성능튜닝 Tool  (0) 2018.02.24
Oracle SQL튜닝. 접근경로(Access Path)  (0) 2018.02.24
Oracle - db link  (0) 2018.02.10
실행계획 - join  (0) 2018.02.10
자주 사용하는 SQL  (0) 2018.02.10
Posted by 농부지기
,

 

 

[ jenkis설치 ]


1. 정의
   - Build Automation (빌드 자동화)
   - 웹 어플리케이션이다.
   - 서블릿 컨테이너가 필요하다.
   - 약 400개 이상의 플러그인을 확장할 수 있다.
   - 애자일방법론 기법으로 jenkins Release
2. 기능
   - 저장소와 통합관리 (Integrate with repository)
   - 소스코드 체크아웃 (Checkout the codes)
   - 분산 빌드 (Distributed Builds)
   - CI 서버는 소스 저장소에 새로게 체크인된 소스코드를 지속적으로 통합하여 빌드한다.
   - 단위 테스트를 수행하고 실패하면 빌드를 취소한다. (선택적)
   - 테스트 보고서 생성 (Generate test report)
   - 실행결과 통보 (Notification)
   - 산출물 저장소에 산출결과를 저장 (Archive and store in artifact repository)
   - 빌드 결과를 다른 서버로 배포(Deploy)한다. (선택적)
 
3. 종류
   - LTS Release : 12주마다 선정되는 안정적인 릴리즈 버전 (추천)
   - Weekly Release : 매주 업데이트 되는 다소 불안정적일 수 있는 버전
4. download
   - https://jenkins.io
   - LTS > Windows 버전 download
5. 파일명
   - 다운로드 파일 : jenkins-2.89.1.zip
   - 압축해제 파일 : jenkins.msi
6. 설치 요구사항
   - 웹 어플리케이션 버서 (Tomcat, JBoss, ..)
   - 빌드 도구 (Maven, Ant)
   - 소스 버전관리 도구 (CVS, SVN, Git, ...)
7. 설치
    - 설치파일 : jenkiins.mis
    - Folder : C:\Jenkins\
8. jenkins 설정
    - port 변경
       . default가 8080인데, tomcat과 충돌발생으로 8086으로 변경
       . 파일 : C:\Jenkins\jenkins.xml
    -
9. jenkins 서비스 start
    - 첫 설치 후 jenkins가 자동 start되지 않는다.
    - 제어판 > 관리도구 > 서비스 > Jenkins 존재 > [시작]

10. Git 설치
    - url : https://www.git-scm.com/
    - 파일 : Git-2.15.1.2-32-bit.exe
    - 설치폴더 : C:\Git
 
10. jenkins 접속 (첫번째 방법) - 자체 접속
    - http://localhost:8086
    - Admin pw :
      . 첫 Login화면에서 [C:\Jenkins\secrets\initialAdminPassword]이 라인이 보인다.
        이 문자열을 복사 후 explore 주소란에 붙여넣고 enter를 치면 password를 볼 수 있다.
      . [Continue]
      . 읍스 난 접속 불가
        그래서 tomcat연동으로 전환

11. jenkins 접속 (두번째 방법) - Tomcat과 연동
     * Tomcat과 연동
     - tomcat 설치(64bit)    : apache-tomcat-8.5.12_64
     - C:\Jenkins\jenkins.war 파일을 -> \apache-tomcat-8.5.12_64\webapps\  밑으로 붙여넣는다.
     - jdk, jre 설치(64bit)    : jdk1.8.0_121, jre1.8.0_121
     - 환경변수 추가 : JRE_HOME  -> C:\Java(x86)\jre1.8.0_121
     - tomcat start  (cmd를 이용해서 '\apache-tomcat-8.5.12_64\bin\startup.bat' 실행
     - jenkins접속 url : http://localhost:8080/jenkins
     - pw : C:\Users\farmerkyh\.jenkins\secrets\initialAdminPassword
     - pw입력 후 [continue]
     - [Customize Jenkins] - 아래 버튼 2개 존재
       . Install suggested plugins : 권장설치
       . Select plugins to install : 사용자설치
        (권장설치)버튼 클릭
     - 여러가지 plugin 기능이 설치 됨
     - Create First Admin User
        계정명 : jenkins
        암호    : jenkins
        이메일주소 : 입력필수(차후 언제 필요할지 몰라서)

12. jenkins - Maven으로 빌드하여 Tomcat으로 배포 설정
     - Main화면.좌측메뉴 > Jenkins관리 클릭
       . 정의 : jenkins의 모든 설정을 관리하는 페이지
     - [Global Tool Configuration] 클릭
       . JDK -> [Add JDK]
          - [ ] Install automatically : 체크 해제
          - Name : jdk1.8.0_121
          - JAVA_HOME : C:\Java(x86)\jdk1.8.0_121
       . Maven
         - Name : hrMaven
         - [v] Install automatically : 자동설치 됨
         - Install from Apache. Version[3.5.2]
       . [Save]

       .
       .
       .
       .
       .

12. jenkins - 새로운 job만들기
     - Main화면.좌측메뉴 > 새로운 Item 클릭
       . name [ newHR ]
       . [Freestyle project] 버튼 클릭
       . [OK] 버튼 클릭
     - [General]
       .
       .
       .
       .
       .
       .
       .

 

 

 


 

Posted by 농부지기
,

[ Nexacro.function - Dynamic ]

 

 

0. 아래에서 사용될 공통 함수   

   

 

1. Dynamic하게 함수 찾기

    1. 문자열을 이용해서 함수 얻기

        . 이때 func는 함수 object가 된다.

        . var func = this["fn_getFuncName"];  

 

        . 위에서 얻은 함수명을 실행시키기

        . func();

 

        . 결과가 function이면 함수 임

        . if (func && typeof(func) == "function) 

 

 

    2. 현재 form, 상위 form에 대한 funciton 찾기

        var find = "function_name";

        var value = this.lookup(find);

        trace(typeof(value)); 

        . trace결과 : funciton

 

    3. form에 선언된 함수목록을 배열형태로 가져오기

       . 현재 화면에 함수 목록

           var arr = this.gfn_GetFunctionListName(this);

       . div내부 form에 함수 목록

           var arr = this.gfn_GetFunctionListName(this.div_name);

       . tabpage내부의 함수 목록

           var arr = this.gfn_GetFunctionListName(this.Tab00.tabpage1);

       . application 함수 목록

           var arr = this.gfn_GetFunctionListName(application);

       . 공통함수

       

 

2. Dynamic하게 form변수 찾기

    1. 현재 form, 상위 form에 대한 form변수 찾기

        var find = "form_variable_name";

        var value = this.lookup(find);

        trace(typeof(value)); 

        . trace 결과 : string,  number,  function 등

 

    2. form 에 선언된 변수를 배열 형태로 가져 오는 함수

       . 현재 화면에 함수 목록

           var arr = this.gfn_GetValueList(this);

       . div내부 form에 함수 목록

           var arr = this.gfn_GetValueList(this.div_name);

       . tabpage내부의 함수 목록

           var arr = this.gfn_GetValueList(this.Tab00.tabpage1);

       . application 함수 목록

           var arr = this.gfn_GetValueList(application);

       . 공통함수

       

 

3. 화면에 적용된 Event 목록 찾기

   

Posted by 농부지기
,

[ MariaDB.실행계획 ]

 

 

2. 공식 URL

    . https://mariadb.com/kb/en/library/explain/

    . https://mariadb.com/kb/en/library/analyze-and-explain-statements/

 

 

Posted by 농부지기
,

[ MariaDB. View 속도 개선 ]

 

Mysql (mariaDB) 에서 View를 사용할때 굉장히 빠른(0.1 초이하) 처리속도의 쿼리를 View그대로 옮길 경우

 

처리 속도가 현저하게 저하되는 경우가 종종 발생합니다.

 

일반적으로 알려진 mysql view 처리속도에 영향을 준다는 "ALGORITHM" 옵션을 변경하여도 이 부분의 해결되지 않습니다.

 

이런 현상이 발생하는 가장 큰 이유는 바로 subQuery  입니다.

 

mysql view 는 실행시 임시 테이블을 생성하는데 이때 subQuery 속도 저하를 일으킵니다.

 

따라서 대응 방법은 아래와 같습니다.

 

======================= 대응방안 ===================

1. subQuery join 쿼리로 대체

2. subQuery 로 처리된 부분을 fucntion 등으로 대체

Posted by 농부지기
,

[ MaraiDB.임시 테이블 ]

 

1. 정의

    . 임시테이블 생성, 조회 및 삭제

    . 세션이 종료되면 테이블은 자동 삭제 됨

 

2. 방법1 - CREATE문장

    - 임시테이블 생성

   

 

   - 임시테이블에 저장, 조회, 삭제

   

 

    - 임시테이블 제거

    

 

3. 벙법2 - SELECT문장

    - 임시테이블 생성

   

 

    - 임시테이블 조회

   

   

    - 임시테이블 제거

    

Posted by 농부지기
,

[ MariaDB.System Table 목록 ]

 

 INFORMATION_SCHEMA.ROUTINES

 Function, ..  목록

INFORMATION_SCHEMA.TABLES

 Table 목록

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

 

 

Posted by 농부지기
,

[ MariaDB 관리 Tool ]

 

 

1. Tool목록

    . MONyog

    . TOAD FOR MYSQL

    .

 

2. 참고 URL

    - http://cafe.naver.com/mariadbkorea/61

 

 

 

'(DB) MariaDB > 기본정의' 카테고리의 다른 글

MariaDB. 참고URL  (0) 2018.02.14
Posted by 농부지기
,

[ MariaDB. 참고URL ]

 

1. 공식 URL

    - 전체함수 목록

      : https://mariadb.com/kb/en/library/documentation/

 

    - Rank, LAG, LEAD, ROW_NUMBER 등 목록

      : https://mariadb.com/kb/en/library/window-functions/

 

    - 실행계획

     : https://mariadb.com/kb/en/library/explain/

 

2. 기타 URL

    . https://blog.naver.com/hmkuak/220583392375

 

 

'(DB) MariaDB > 기본정의' 카테고리의 다른 글

MariaDB 관리 Tool  (0) 2018.02.14
Posted by 농부지기
,