반응형 IT와/Database13 [ORACLE] Oracle Enterprise Manager(OEM) Oracle Enterprise Manager 1. 데이터베이스 성능 관리 찾기, 수정, 검증 온프레미스 및 클라우드를 포괄하는 최상위 뷰를 활용하여 모든 Oracle Database 자산을 모니터링하고 관리할 수 있습니다. 데이터베이스 관리자는 통합되고 자동화된 심층 분석 기능을 활용하여 성능 문제가 프로덕션 환경으로 이관되기 전에 신속하게 포착하고, 수정 사항을 적용하고, 수정 내역을 검증할 수 있습니다.찾기 강력하고 자동화된 통합 진단 기능 내장 Automatic Database Diagnostic Monitor(ADDM) - Oracle Database 커널에 내장되어 성능 문제 식별 단순화 Automatic Workload Repository(AWR) 및 Active Session History.. IT와/Database 2022. 10. 13. [성능 튜닝] 대규모 데이터 처리(메모리와 디스크, 웹 애플리케이션의 부하) 대규모 서비스의 데이터 규모 한 서비스의 데이터 규모는 다음과 같습니다. 한 테이블당 레코드 건수가 1,500만이나 5,000만 정도가 됩니다. 데이터 크기로는 entry라는 테이블이 3GB, bookmark라는 테이블이 5.5GB, tag 테이블이 4.8GB, 그리고 HTML 텍스트 데이터도 압축해서 저장하고 있는데, 이것이 200GB를 넘고 있습니다. 전체적으로 기가바이트 단위가 됩니다. Google이나 Yahoo!가 사용하고 있는 규모가 되면 더 나아가 테라바이트, 페타바이트가 되므로 이는 초대규모입니다. 보통 웹 애플리케이션을 만들면서 좀처럼 기가바이트 단위의 DB는 나오지 않으므로 일반적인 웹 애플리케이션이라는 관점에서 보면 큰 규모인 것입니다. 레코드 수 데이터 크기 entry 테이블: 1,5.. IT와/Database 2022. 10. 11. [MySQL] 대량 데이터 INSERT 시 속도 개선 방법 1. LOAD DATA - Bulk Insert방법중 최대 속도인 처리방법 - 데이터를 파일로 로드해서 insert 하는 방법 - my.cnf에서 local-infile=1 설정이 되어 있어야 사용가능 - 단 데이터 내용안에 특수문자가 누락되는 경우가 많아서 특문을 별도 처리해야 함 LOAD DATA LOCAL INFILE '/work/data.txt' INTO TABLE TEST (c1,c2,c3,c4); 2. MULTI-VALUE INSERTS - 쿼리문 하나에 n개의 데이터를 입력해야함 - 단 데이터 갯수가 너무 많아져서 쿼리길이기 길어지는 경우를 대비하여 max-allowed-packet 길이를 조절해야 함. INSERT INTO [Table Name] VALUES (1,...), (2,...),.. IT와/Database 2022. 10. 8. [MySQL] 인덱스 #3 - INDEX의 종류 MySQL이 지원하는 index MySQL에서 지원하는 인덱스는 B+Tree와 Hash가 있습니다. B+tree MySQL에서 사용하는 B+tree에 대해서 이해하려면, 먼저 B-tree에 대해서 알아야 합니다. 왜냐하면 B+tree는 B-tree에서 한 단계 발전한 버전이기 때문입니다. B-tree는 이름에서도 알 수 있듯이 자료구조 중 tree구조로 이루어져 있습니다. Binary search를 떠올려보면 검색 속도가 O(logN)으로 매우 빨랐던 것을 떠올릴 수 있습니다. 어떻게 이게 가능한가? 하면 ‘이미 데이터가 정렬되었기 때문’입니다 아래 그림을 보겠습니다. 위 그림이 B-Tree의 구조입니다. 기존의 BST와 연관하여 생각하면 구조를 빠르게 파악할 수 있습니다. 여기서 핵심은 트리 구조로 이.. IT와/Database 2022. 10. 7. [MySQL] 인덱스 #2 - 인덱스(INDEX) 정리 및 설계 1. 개요 MySQL 스키마 설계는 자주 해보았지만 효율적인 데이터타입, 인덱스 설계에 대한 부분은 이해도가 낮은 것 같아 조사 후 남기는 포스팅이다. 2. 인덱스의 개념 인덱스는 테이블의 동작속도(조회)를 높여주는 자료구조이다. 인덱스로 데이터의 위치를 빠르게 찾아주는 역할이고 쉽게 예를 들어보면 책 뒷편에 '색인'이 인덱스의 역할과 동일하다고 볼 수 있다. (예를들어 '홍길동'이라는 단어를 찾고싶으면 색인페이지에서 '홍'으로 시작하거나 'ㅎ'으로 시작하는 색인을 찾아보면 빠르게 찾을 수 있다.) 인덱스는 MYI(MySQL Index)파일에 저장되며, 인덱스가 설정되지 않았다면 Table Full Scan이 일어나 성능이 저하되거나 치명적인 장애가 발생한다. 조회속도는 빨라지지만 UPDATE, INSE.. IT와/Database 2022. 10. 7. [MySQL ] 인덱스 #1 - 효율적인 인덱스(index) 생성 DB에는 여러 개의 테이블이 존재하고, 그 테이블에는 다양한 수의 데이터가 쌓입니다. 만약 천 만 개의 데이터가 쌓였다고 가정할 때, 여러 조건을 조합해서 데이터를 조회하려면 로딩 시간이 아주 오래 걸리겠지요? 이 때 인덱스(index)를 설정하면 속도가 빨라집니다. 1. 인덱스의 개념 “‘찾아보기’로 일컬어지는 색인(索引)은 책에서 중요한 단어나 항목, 고유명사 등을 쉽게 찾을 수 있도록, 그것들을 일정 순서에 따라 배열한 목록이다.” 인덱스는 테이블의 동작 속도를 높여주는 자료 구조입니다. 인덱스로 데이터의 위치를 빠르게 찾아주는 역할을 합니다. 쉬운 예시로, 책 뒷 편에 ‘색인’이 바로 이 인덱스의 역할이라고 보면 됩니다. 색인을 통해 원하는 키워드에 대한 페이지로 바로 이동할 수 있지요. 책의 색.. IT와/Database 2022. 10. 6. [MySQL] 스토어드 프로시저(Stored Procedure) 기본 1. 개요 평소 SQL을 사용할 때 일반적인 쿼리문을 자주 사용하게 되는데 특정한 경우 프로시저를 사용하면 편리성면에서 높은 효과를 볼 수 있을 것 같다는 생각이 문득 들었고 또, 자주 사용하는 문법이길래 이번 기회에 포스팅을 하려고 한다. 먼저, 프로시저란 무엇일까 간단하게 한 마디로 설명해보자면 여러 쿼리를 한번에 수행하는 것 마치 SQL문법의 함수(Function)와 아주 유사한 느낌이다. 하지만 우리가 아는 SQL함수와는 차이가 있다. 함수(Function) : 클라이언트에서 처리, 리턴값 필수, 리턴값 하나만 반환가능 프로시저(Procedure) : 서버로 보내서 처리, 리턴값 선택, 리턴값 여러개 반환가능 SQL 처리를 하는 위치에서의 차이점인데 속도면에서는 프로시저가 더 빠른 성능을 보인다고.. IT와/Database 2022. 10. 6. [MySQL] 계층구조 쿼리 설명 트리형식으로 계층을 이루어 카테고리가 구성되어 있는 것을 볼 수 있다. 이를 구현하기 위해 만든 쿼리이다. 테이블 구성 예시데이터 결과 쿼리(SQL) SELECT CONCAT(A.group_ID, A.category_LEV, A.category_detail_LEV) AS n_key, A.category_NM, CONCAT(repeat(' ',A.category_parent_LEV * 3), A.category_detail_NM) as category_name, CASE A.category_parent_LEV WHEN 0 THEN C.category_detail_NM WHEN 1 THEN CONCAT(B.category_detail_NM,' > ', A.category_detail_NM) WHEN 2.. IT와/Database 2022. 10. 5. [오라클] SPA(SQL Performance Analyzer) 1. SPA(SQL Performance Analyzer) SPA 는 데이터베이스의 변경 작업이 실제 SQL 구문에 미치는 영향을 정확하게 비교, 분석하는 방법으로, ORACLE 의 RAT(Real Application Testing) 옵션 중에 하나 입니다. * RAT : 운영 환경에서 변경 사항을 적용하기 전에 테스트 환경에서 실제 시스템의 변경 사항이 시스템 환경에 미치는 영향을 사전에 파악하여 평가 할 수 있는 기능으로, 업그레이드, 하드웨어 교체 및 OS 변경을 쉽게 수행 할 수 있는 옵션 - DATABASE REPLAY : 운영서버에 가해지는 부하를 그대로 Capture 한 파일을 가지고 테스트 - SQL Performance Analyzer: 분석하고자 하는 특정 SQL 문장들을 대상으로 분.. IT와/Database 2022. 10. 5. [MySQL] 데이터베이스에서 데드락(Deadlock) 목차 데드락(Deadlock)을 줄일 수 있는 방법 데드락 상태 확인 명령어 데드락 케이스별 분석 두개 이상의 트랜잭션들이 동시에 진행될때 서로가 서로에 대한 락을 소유한 상태로 대기 상태로 빠져서 더이상 진행하지 못하는 상황을 데드락(deadlock)이라고 한다. 데드락은 트랜잭션을 지원하는 데이터베이스에서는 자주 발생하는 문제이다. 멀티 스레드(Multi-threaded) 어플리케이션에서 발생하는 데드락은 해당 어플리케이션을 완전히 멈추게 해버리기 때문에 위험하다. 하지만 일반적인 DBMS (Database Management System)에서는 데드락 탐지(Deadlock detection) 기능을 제공하기때문에 데드락이 발견되면 자동으로 해소시켜준다 (실제 데드락 상황이 아닐지라도 락에 대한 대기.. IT와/Database 2022. 10. 4. [MySQL] 락(Lock)의 종류 목차 락(Lock) 의 적용 요소에 따른 분류 락(Lock) 이 적용되는 상황에 따른 분류 MySQL InnoDB 락(Lock)의 종류 실제 Inno DB내부에서는 경우 여러 트랜잭션들이 경합하고 있는 상황에서 최대한의 성능을 위해서 여러 방식의 다양한 락(Lock)을 조합해서 사용하고 있다. 이 과정에서 각 트랜잭션이 획득한 락들은 해당 트랜잭션이 commit/rollback 되어 종료될 때까지 유효하기 때문에, 이러한 lock을 최소화 하면서도 동시성을 유지하기 위해 어떤 상황에 어떤 락들이 실제로 적용되는지를 좀더 자세히 살펴보도록 하자. 1. 락의 적용 요소에 따른 분류 Shared lock (S) Row-level lock SELECT 위한 read lock shared lock이 걸려있는 동안.. IT와/Database 2022. 10. 4. [오라클] Database Silent Upgrade (11.2.0.4 to 19.x) 목차 개요 사전 조사 업그레이드 준비 작업 업그레이드 업그레이드 마무리 작업 1. 개요 11.2.0.4 버전에서 19c(19.6)으로 업그레이드하는 작업입니다. 업그레이드를 수행한 VM 환경(Virtual Box 사용)은 다음과 같습니다. CPU 2 Core를 VM에 할당 OS Oracle Linux 7.6 Memory 2048MB Source DB 11.2.0.4 (별도 패치 안함) Disk 30GB (기본 DB만 생성) Target DB 19.6 (19.3에 RU 적용) 2. 사전 조사 사전 조사 preupgrade.jar 실행 더보기 echo $ORACLE_HOME /jdk/bin/java -jar /rdbms/admin/preupgrade.jar TERMINAL TEXT [oracle@orcl ~.. IT와/Database 2022. 9. 28. 이전 1 2 다음 💲 추천 글 반응형