IT 공부 14

MySQL Study

MySQL에 대한 전반적인 내용을 정리하려고 합니다. ■ MySQL이란, 가장 많이 사용하는 오픈 소스 DBMS - 비용이 저렴하다. - 커뮤니티 활성도와 인지도가 높아서 경험이나 지식을 구하기 비교적 쉽다. (그러나 상용 DBMS에 비해 전문가가 많지 않은 것도 현실) ■ MySQL version - 5.7 출시일: 2015-10 / 지원 종료: 2023-10 - 8.0 출시일: 2018-04 / 지원 종료: 2026-04 - 8.1 출시일: 2023-07 - 분기마다 패치 (MySQL 8.0.34, 2024-07-18) ■ Community vs. Enterprise Edition - Enterprise와 Community는 모두 동일 - Enterprise에는 부가 기능이 포함 Enterprise ..

IT 공부 2023.10.06

Oracle DB 기본 관리 - 07. 언두 데이터 관리

트랜잭션 작업 기록 목적 1) rollback 2) 읽기 일관성 user 1 user2 db buffer update emp set sal = sal*1.1 where empno = 7566; D [-ing | 1100] U [-ing | 1000] select * from emp; --> user2는 undo buffer를 읽어서 1000을 보여준다. 3) Flashback - 사용자의 논리적 오류를 복구해준다 (예시: 실수로 delete, update 작업 후 commit까지 한 경우) - 위와 같은 사용자의 논리적 오류를 복구해주기 위해 undo는 트랜잭션이 종료되더라도 일정 시간 동안 유지한다. user 1 user2 db buffer redo buffer update emp set sal = s..

IT 공부 2023.03.09

Oracle DB 기본 관리 - 05. 데이터베이스 저장 영역 구조 관리

■ 데이터 생성 순서 1. 기본 기능만을 가진 DB 생성 - system, sysaux, undo type, temporary type TBS 생성 . permanent : create table . temporary : sort 중간 결과치 (얘는 tempfiles에 저장) . undo : 변경되기 전 data 2. 업무별 TBS 추가 - 데이터 용 TBS, 인덱스 용 TBS - 예시) 인사, 급여, 회계 - TBS 크기를 정해보자. . 컬럼의 type을 확인한다. number, char는 자리수를 동일하게 하고 varchar는 평균 자리수를 추측하여 테이블의 전체 자리수를 더한다. . 데이터 예상 건수/월 * 12개월 * 보관연도 = 전체 데이터 예상 건수 3. 업무별 DB user 생성 - 예시) ..

IT 공부 2023.03.08

Oracle DB 기본 관리 - 03. Oracle Network 환경 구성

■ DB server는 Listener Process를 통해 client와 연결한다. (Default Listener: listener, TCP/IP, 1521 port) - listener.ora에 DB 정보, 인스턴스 정보 저장 - 여러 인스터스 구성에서는 DB 정보를 자동으로 등록 가능 (기본 listener에 대해서만) ■ Client는 tnsnames.ora에 접속하려는 DB 정보 저장 ■ Listener - 위치: /network/admin/listener.ora - client의 접속 요청을 확인하여 user process와 server process를 연결해준다. - 리스너 프로세스 생성 방법 1) DB 설치 시 생성 2) Oracle Net Manager에서 리스너 생성 > 수신 위치 설..

IT 공부 2023.03.07

Oracle DB 기본 관리 - 02. 데이터베이스 Instance 관리

■ 초기화 parameter file - 파일 위치: D:\app\oracle\product\12.2.0\dbhome_1\database (Windows) create pfile from from spfile; - spfile{SID}.ora (binary format) → init{SID}.ora (text format) (반대 방향도 가능) - 2개 파일이 모두 있을 때는 spfile 우선순위가 더 높다. spfile은 binary이므로 변경이 어렵다. - initprod.ora을 열면 parameter 확인 가능 (*.{parameter name}만 실제 parameter이며 나머지는 ASMM, AMM 기반 자동 설정 값) - parameter를 변경하기 위해서는 ① alter system set ..

IT 공부 2023.03.07

Oracle DB 기본 관리 - 01. 오라클 데이터베이스 구조 탐색

■ Real Application Cluster - 오라클의 고가용성을 위한 cluster 구성 - 여러 인스턴스를 묶어서 하나의 데이터베이스에 연결해서 하나의 인스턴스처럼 사용 ■ Connection vs Session - Session : connection 중 특정 연결 ■ 메모리 구조 1) SGA (Share Global Area, System Global Area) - Shared pool . Library cache : Parse 할 때 사용했던 P_code &실행계획 저장 . Dictionary cache : Parse할 때 사용했던 데이터 딕셔너리 캐시 저장 - DB buffer cache . 데이터 파일에서 읽은 Block 저장 - Redo log buffer . 데이터 변경 사항 저장 ..

IT 공부 2023.03.06

Oracle SQL Tuning 교육 - 실습 복습 2

4. Using Basic Techniques SQL문 트레이스를 위해 DB buffer cache와 shared pool을 reset 한다. -- Shared pool 비우기 alter system flush shared_pool; -- DB Buffer Cache 비우기 alter system flush buffer_cache; Case 1: Correlated Subquery Case 2: Join Conditions Case 3: Simple Predicate Case 4: Union Case 5: Combining SQL Statements Case 6: Database Connection Management 5. Optimizer Fundamentals 10053 trace file이란, op..

IT 공부 2022.05.20

Oracle SQL Tuning 교육 정리 - Day 5

11. Introduction to Optimizer Statistics Concepts 옵티마이저 통계 정보 Index, Table, Column, System DBA_TAB_STATISTICS - 전체 레코드 수, 평균 row길이, 총 blocks수, 최근 통계정보 수집 일자 DBMS_STATS ANALYZE -- EMPTY_BLOCKS, AVE_ROW_LEN, CHAIN_CNT 값을 수집할 수 있는 명령어 DBA_IND_STATISTICS - 인덱스 이름, B-tree Level, leaf block수, key값 수 등 Index Clustering Factor란 인덱스로 데이터를 검색할 때, high clustering factor -- A를 검색하기 위해 3개 blocks을 읽어야 한다 --> ..

IT 공부 2022.05.20

Oracle SQL Tuning 교육 정리 - Day 4

7. Interpreting Execution Plans and Enhancements 실행 계획(execution plan)은 row sources들의 tree 형태로 나타낼 수 있다. pid란, 해당 step의 부모 step의 id pos란, 해당 step의 부모 기준으로 붙인 child number 예시) id=5, pid=2, pos=1 → 5번 step은 2번 step의 첫 번째 child Execution plan example 1. 3 → 5 → 4 (→ 3 → 5 → 4 → ... 3 → 5 → 4) → 2 → 6 → 1 SQL> alter session set statistics_level=ALL; Session altered. SQL> select /*+ RULE to make sure..

IT 공부 2022.05.19

Oracle SQL Tuning 교육 정리 - Day 3

https://ouconnect.oracle.com username: 99389204.user11 password: wX945N0DeA pw: Seoul_2022## Example 26. Ordering Keys for Composite Index - 결합 인덱스는 컬럼 순서가 중요하다 - 첫 번째 컬럼에 대해서는 검색하는 범위가 좁으면 좋다, 상대적으로 인덱스 block을 적게 읽는다 - 결합 인덱스가 많은 경우 유지 보수가 어렵다. (테이블 변경 점에 대해 인덱스 리빌딩, 저장 공간) 그럼에도 불구하고 성능 향상을 위해 인덱스가 필요하면 만들어야 한다. index skip scan: 결합 인덱스 첫 번째 컬럼이 조건절에 사용하지 않은 경우 *Selectivity : 컬럼에 대해 검색하는 데이터 비율 ..

IT 공부 2022.05.18