일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Spring Boot
- tool
- jenkins
- redis
- laravel
- java
- springboot
- Spring
- Web Server
- JVM
- linux
- Oracle
- elasticsearch
- javascript
- MySQL
- 맛집
- IntelliJ
- php
- ReactJS
- Git
- devops
- it
- db
- Gradle
- ubuntu
- jsp
- Design Patterns
- Spring Batch
- AWS
- 요리
- Today
- Total
목록db (38)
아무거나
1. 12g 이전 버전 SELECT ROW_NUM, LOG_NO, SVC_NM, DB_NM, TBL_NM, PROCDR_NM, CALL_URL, CALL_MTHD_SP_VAL, CALL_PARA_VAL, EXEC_TME, LOG_DESC, INPT_DM FROM ( SELECT ROW_NUMBER () OVER (ORDER BY INPT_DM DESC) AS ROW_NUM, LOG_NO, SVC_NM, DB_NM, TBL_NM, PROCDR_NM, CALL_URL, CALL_MTHD_SP_VAL, CALL_PARA_VAL, EXEC_TME, LOG_DESC, INPT_DM FROM TB_CM_OP_L ) WHERE ROW_NUM BETWEEN ((NVL(1, 0)-1) * 10 + 1) AND (NVL(..
MySQL에서의 인덱스: insert, update, delete의 성능을 희생하고 select의 성능을 향상(update, delete, insert의 행위가 느린것이며 해당 쿼리를 실행하기 위해 데이터를 조회하는 것은 인덱스가 존재하면 빠름) B-Tree Index(=Balanced Tree) 설계기준 개수는 3~4개가 적당 인덱스의 키는 길면 길수록 성능이 저하(인덱스 키란 데이터타입(ex: varchar, int ..)의 크기로 이해하면 되고, InnoDB Storage Engine에서 전체 인덱스 키 크기는 767byte이다.) 1개의 컬럼만 Index를 적용시 카디널리티(=Cardinality)가 가장 높은 것으로 잡는게 좋음(인덱스로 최대한 효율을 내기 위해서는 많은 부분을 걸러내야 한다. ..
OVER 함수 및 PARTITION BY 사용법 예제 데이터 예제 쿼리 반환되는 행의 수를 계산하여 줄인다. (GROUP BY) SELECT EXEC_TME, COUNT(*) AS LOG_CNT FROM TB_CM_OP_L GROUP BY EXEC_TME; 모든 행을 분할, 반환 된 행의 수에 영향을 미치지 않고 결과가 누적되어 계산되는 방식 주로 누적집계나 누적합계에 많이 사용됨 -> 1번 row에 3이 1개, 3번 row에 3이 또 있으므로 2개로 표시 즉, 값이 누적되어 계산됨 (PARTITION BY) SELECT ROW_NUMBER() OVER (PARTITION BY EXEC_TME ORDER BY INPT_DM DESC) AS ORDER_INPT_DM_LOG FROM TB_CM_OP_L; 5..
실행계획(SQLDeveloper 툴에서는 단축키 F10) -- 1. 실행계획에 대한 정보를 저장 (실제 조회 쿼리가 실행되는게 아님) EXPLAIN PLAN SET STATEMENT_ID = 'EXPLAIN_TEST' INTO PLAN_TABLE FOR SELECT * FROM TEST_TABLE; -- 2. 실행계획 테이블에 저장된 정보를 조회하여 해당 정보를 확인 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE', 'EXPLAIN_GDS', 'ALL'))
테이블 복사 복사할 테이블이 존재하지 않을경우 CREATE TABLE [대상 테이블명] SELECT * FROM [원본 테이블명] 복사할 테이블이 존재하는 경우 INSERT INTO [대상 테이블명] SELECT * FROM [원본 테이블명] 다른 데이터베이스 간의 테이블 값 복사 INSERT INTO [대상 데이터베이스명].[대상 테이블명] SELECT * FROM [원본 데이터베이스명].[원본테이블명] 중복 레코드 에러가 생길 겨우 예외처리 방법 // ignore 처리 INSERT ignore INTO .....
스칼라 서브쿼리 SQL에서 단일 값을 스칼라(=Scala)값 이라고 표현한다. 즉, 스칼라 서브쿼리(=Scala Subquery)는 SELECT절에 오는 서브쿼리로 결과값으로 1행만 반환하는것을 말한다. -- SELECT문 안에 SELECT문으로 스칼라 서브쿼리 사용 SELECT board_title, ( SELECT board_contents FROM tb_board AS a WHERE a.board_no = b.board_no ) AS board_contents, board_no FROM tb_board AS b WHERE board_contents like '%contents%';
-- 예시로 TB_SAMPLE_ONE, TB_SAMPLE_TWO 각각 두개의 테이블이 있고 ID, STATUS 값으로 조인을하여 TB_SAMPLE_ONE 의 TITLE을 TB_SAMPLE_TWO의 TITLE로 업데이트하자 UPDATE ( SELECT a.TITLE, b.TITLE AS MODIFY_TITLE FROM TB_SAMPLE_ONE a, TB_SAMPLE_TWO b WHERE 1=1 AND a.ID = b.ID AND a.STATUS = b.STATUS ) r SET r.TITLE = r.MODIFY_TITLE;
[MaxGauge 쿼리 추출 방법] 1. 분석할 쿼리(기능)을 실행 2. 하단에 실시간으로 분석되나 쿼리가 빠르면 바로 사라짐 -> 상위의 PERFORMANCE ANALYZER 버튼 클릭 3. 좌측 메뉴에 Trend Analysis 버튼 클릭 4. 상위 탭 메뉴에 SQL List 클릭 5. 실행시킨 쿼리시간등을 정하고 SQL Text란에 쿼리문 입력(Like 검색됨) - ex: FROM TB_TEST 6. Retrieve 버튼 클릭하여 조회
성능 최적화 H/W 세팅 CPU: 8 Core, RAM: 30GB, Disk: 80GB (SSD) 정도로 세팅하여 리소스에 따라 세팅하자. (AWS EC2 기준 m3.2xlarge 부터 추천) Elasticsearch JVM Heap Memory는 32GB 이상 지정할 수 없다. 따라서 64GB 이상을 사용하는 서버를 사용할 이유가 없다. JVM Option은 -Xms와 -Xmx 설정값을 동일하게 설정한다. CPU 사용률이 60% 이상이면 CPU 확장 필요 Document 세팅 Shard Shard 개수는 데이터 크기가 작으면 default 값으로 유지하는게 좋고 데이터 크기가 클수록 응답속도 성능에 맞춰 증가시키는 것이 좋다. Shard의 물리적인 크기는 20GB ~ 40GB 정도의 사이즈가 적절하다...
여러 행으로 되어있는 값을 구분자로 하나의 행으로 표시 // Table Name: MEMBER, Separate Column: LOGIN_ID SELECT LISTAGG(LOGIN_ID, ', ') WITHIN GROUP(ORDER BY LOGIN_ID) separate FROM MEMBER; separate -------------------------- bkjeon, tester, bong92 1 row selected.