📌 Study Tip
-
정보처리기사
페이지 교체 알고리즘 - FIFO, LRU, LFU
FIFO(First in First out, 먼저 들어온 것을 먼저 교체)1. 3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가 1, 2, 1, 0, 4, 1, 3일 경우 FIFO 알고리즘에 의한 페이지 교체의 경우 프레임의 최종 상태는?FIFO공간 3개1: 페이지 부재 발생1 2: 페이지 부재 발생1 21 2 0: 페이지 부재 발생4 2 0: 페이지 부재 발생FIFO: 먼저 들어온 것을 먼저 빼냄1 → 44 1 0: 페이지 부재 발생2 → 14 1 3: 페이지 부재 발생0 → 3프레임의 최종 상태4, 1, 3 2. 3개의 페이지 프레임을 가진 기억장치에서 페이지 요청을 다음과 같은 페이지 번호 순으로 요청했을 때 교체 알고리즘으로 FIFO방법을 사용한다면 몇 번의 페이지 부재가 발생하는가? (..
-
SQL 튜닝
[SQL튜닝/SQL 분석] SQL 분석 도구(1) (AutoTrace, dbms_xplan.display & dbms_xplan.display_cursor, 10046 Trace & SQL Trace)
🖥️ 들어가며📌 Trace 결과 분석: AutoTrace, dbms_xplan.display & dbms_xplan.display_cursor, 10046 Trace & SQL Trace📌 전체 DB 성능 분석: AWR Report ✏️ 1. AutoTraceSQL*Plus에서 제공하는 실제실행계획 및 실행통계 확인 도구SQL 수행 시 실제 일량 측정 및 튜닝하는데 유용한 정보들을 많이 포함하는 도구입니다.10046 Trace와는 달리(.trc 파일 생성) 트레이스 파일 없이 화면에 결과를 출력합니다.출력 정보조건절 정보(Predicate Information): access / filterHint ReportNoteEvent에 대한 통계 정보: sorts SQL> set autot onSQL> s..
-
코딩테스트
[java/프로그래머스/120868] 삼각형의 완성조건(2) (삼항연산자, answer += min * 2 - 1)
✏️ 문제 설명선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.✏️ code📌 아쉬운 점- for문을 이용한 count 계산 => 시간복잡도 O(n)- 만약 수식을 사용하여 직접 계산했다면 O(1) 시간 복잡도를 가질 수 있을 것입니다.📌O(1): answer += min * 2 - 1;- 삼각형의 조건: max - max: Math.max(sides[0], sides[1])- min: Math.min(sides[0], sides[1])- 세 ..
-
SQL 튜닝
[SQL튜닝/아키텍처 기반 튜닝 원리] SQL 파싱 부하 (SQL 처리과정, 캐싱된 SQL 공유, Bind 변수 사용, Static/Dynamic SQL, Application Cursor Caching)
🖥️ 들어가며📌 SQL 파싱 부하의 핵심: 파싱 최소화, 쿼리 최적화, 인덱스 관리를 통해 시스템 자원 효율성을 극대화하는 것입니다.(Hard Parsing, Soft Parsing, Bind 변수, Application Cursor Caching)✏️ 1. SQL 처리과정처리과정 1: SQL 파싱(Parsing)(1) Syntax 검사: SQL 문장에 문법적 오류가 없는지(2) Semantic 검사: 의미상 오류가 없는지(3) SQL 실행 계획이 Library Cache(SQL Server: Procedure Cache)에 존재하는지, 존재 여부 점검=> ⭐⭐⭐ 캐싱 O: Soft Parsing, 캐싱 X: Hard Parsing파싱 종류설명소프트 파싱 (Soft Parsing)SQL과 실행계획을 ..
-
SQL 튜닝
[SQL튜닝/옵티마이저 원리] 쿼리 변환 2 (조건절 Pushing, 조건절 이행, 불필요한 조인 제거, OR 조건을 Union으로 변환, 기타)
🖥️ 들어가며📌 쿼리 변환 종합- 서브쿼리 Unnesting (+ push_subq)- 뷰 Merging (불가한 경우: 집CR 함수는 불가, Group By는 가능)- 조건절 Pushing (조인절 Pushdown, 조인절 Pullup, 조인조건 Pushdown)- 조건절 이행- 불필요한 조인 제거- OR 조건을 Union으로 변환 (OR-Expansion)- 기타 ✏️ 1. 조건절 Pushing옵티마이저의 뷰 처리1차적으로 뷰 Merging을 수행하지만뷰 Merging 실패 시 옵티마이저는 조건절(Predicate) Pushing을 시도합니다.조건절 Pushing뷰를 참조하는 메인쿼리 블록의 조건절을 → 뷰 쿼리 블록 안으로 Pushing하는 기능입니다.조건절 Pushing 종류1. 조건절 Pus..
-
SQL 튜닝
[SQL튜닝/인덱스와 조인] Nested Loop 조인 (Prefetch, Batch I/O)
🖥️ 들어가며📌 Prefetch, Batch I/O: 모두 Disk I/O 횟수를 감소시키기 위해 사용합니다.다만 Prefetch는 미세한 Block Read량이 증가하게 되고, Batch I/O는 Disk I/O 발생 시 정렬 순서가 상이해집니다. ✏️ 1. Nested Loop 조인기본 매커니즘for문(Java의 중첩 루프문)과 동일한 원리입니다.반복문의 외부에 있는 테이블 = 선행 테이블 = 외부 테이블 = Outer Table반복문의 내부에 있는 테이블 = 후행 테이블 = 내부 테이블 = Inner Table선행 테이블 조건에 만족하는 첫번째 행 추출 → 후행 테이블 읽으면서 조인 → 선행 테이블 조건을 만족하는 모든 행의 수만큼 반복수행=> 선행 테이블 조건에 만족하는 행의 수가 많으면 그만..
-
SQL 튜닝
[SQL튜닝/인덱스와 조인] 인덱스 종류 및 설계 (B-Tree 인덱스, 비트맵 인덱스, 함수기반 인덱스, 리버스 인덱스, Clustered Index, IOT)
🖥️ 들어가며📌 인덱스 종류- B-Tree 인덱스, 비트맵 인덱스, 함수기반 인덱스, 리버스 인덱스, Clustered Index, IOT📌 결합 인덱스 설계시 고려사항- 조건절에 자주 사용되는 컬럼, 등치 조건으로 사용되는지, 카디널리티가 좋은지, 소트 연산을 대체할 수 있는지 ✏️ 1. B-Tree 인덱스Unbalanced IndexB-Tree에서 B는 Balanced이므로, Unbalanced Index는 없습니다.Index Skew 현상Index 정렬 순으로 특정 방향의 데이터가 대량으로 Delete되어 Leaf Block이 빈 상태를 말합니다.Leaf Block은 완전히 비어있을 때만 Freelist(Free Block)로 반환됩니다.(부분적으로 비어있는 블록은 인덱스 구조에 남아있습니다...
-
정보처리기사
서브넷 마스크, 서브넷 계산, 서브네팅, 전송속도
1. 서브넷 마스크1. IPv4 주소 A클래스에 대한 표준 네트워크 서브넷 마스크로 옳은 것은?서브넷 한다 = C클래스의 경우 256개 중 254개의 컴퓨터에다가 IP를 줄 수 있다는 말C클래스를 여러 군데에서 쓸 수 있도록 나누어주는 것이 서브넷, 서브네팅A클래스 표준 네트워크 서브넷 마스크A클래스: 192.168.0.1192: A 클래스168: B 클래스0: C 클래스A클래스의 표준 서브넷 마스크라면 A클래스만 255, 나머지는 0255.0.0.0Q1) B클래스의 표준 서브넷 마스크는? A1) 255.255.0.0Q2) C클래스의 표준 서브넷 마스크는? A2) 255.255.255.0 2. 다음 중 IP주소가 B Class이고, 전체를 하나의 네트워크망으로 사용하고자 할 때 적절한 서브넷 마스크 값은..