본문 바로가기

전체 글211

옵티마이저 Optimizer : SQL 실행계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어 같은 SQL문이더라도 어떻게 실행하냐에 따라 성능이 달라진다. (소요시간, 자원사용량 등) =>SQL문을 분석한 후 일정한 기준을 통해 실행계획을 세워줘야함. 이때 사용되는 것이 옵티마이저! SQL문 작성 - Parsing(문법 검사, 구문 분석) - 옵티마이저 (비용기반/규칙기반) - 실행계획(plan_table 저장) - SQL 실행 1. 옵티마이저는 '비용기반 옵티마이저'와 '규칙기반 옵티마이저'가 있으며, 최신 오라클은 비용기반을 default로 사용한다. 2. 비용기반 옵티마이저는 시스템 통계와 오브젝트 통계를 통해 해당 SQL문 실행에 대한 총 비용을 계산하고, 총 비용이 가장 적은 쪽으로.. 2022. 10. 17.
window 함수, 계층형 조회 window함수: 행간 구분을 지어서 그 안에서의 관계를 쉽게 정의하기 위한 함수. 구조 : select window_function (arguments) over ([partition by 컬럼명][order by 컬럼명][windowing]) from 테이블명; ex) select 매장코드, 지역명, 메뉴명, 판매량, dense_rank() over (partition by 지역명 order by 판매량 desc) as 판매순위 from 판매 window_function : 윈도우 함수 argument : 인수 ( 컬럼명 등 함수의 작업이 이뤄지는 대상) partition by : 테이블의 레코드들을 쪼개는 기준 order by : 쪼개진 레코드들 내에서 혹은 전체 테이블에서 레코드들을 어떤 기준으로.. 2022. 10. 14.
NULL 관련 함수 NVL(col1, 대체값) : NULL이면 다른 값으로 바꿔주는 함수. ISNULL도 같은 역할! 표현식 두개의 데이터 타입이 같아야 함. ex) NVL(col1, 100) >> col1이 null이면, 100으로 바꿔줌 NVL2(col1, 결과1, 결과2) : col1이 NULL일 때,NVL2(col1, 'F', 'T') >>'T'출력. col1이 NOT NULL일때 'F'출력 NULLIF(v1, v2) : v1 == v2면 NULL, v1 != v2면 v 1을 출력 COALESCE(v1, v2, v3...vn) : NULL이 아닌 최초의 값을 반환. 2022. 10. 12.
[SQL] TCL TCL(Transaction Control Language) : 트랜잭션을 제어하기 위한 언어 * 트랜잭션: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 COMMIT : 데이터에 대한 변화를 DB에 반영하기 위한 명령어 SAVEPOINT : 코드를 분할하기 위한 저장 포인트 지정 ROLLBACK : 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어. 최신 COMMIT이나 특수한 SAVEPOINT로 되돌릴 수 있는 명령어. 트랜잭션의 특징 고립성: 트랜잭션이 실행되는 동안 다른 트랜잭션에 영향을 받아 잘못된 결과를 만들어선 안된다. 원자성: 트랜잭션에서 정의된 연산은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 있어야 한다. 지속성: 트랜잭션이 성공적으로 완료되면 해당 트.. 2022. 10. 12.
IP & TCP/UDP & PORT & DNS IP (Internet Protocol) 출발지IP, 도착지IP와 데이터 등을 갖고 있는 패킷이 송수신된다. 패킷(Packet)이라는 통신 단위로 데이터가 클라이언트와 서버 사이에서 전달된다. IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태(ex. 상대방 pc가 off 상태)여도 패킷 전송. 비신뢰성 : 패킷이 소실되거나 전달 순서가 보장되지 않는다. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상(내가 사용하고 있는 PC에서 음악도 듣고 게임도하고 여러가지 일을 동시 수행한다는 뜻)이면 구분하지 못한다. TCP (Transmission Control Protocol : 전송 제어 프로토콜) 연결지향 - TCP 3 way handshake (.. 2022. 10. 8.
[백준] 10866 덱 💡 문제 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 💡 정답 from collections import deque import sys d = deque() n = int(input()) for i in range(n): comd = list(sys.stdin.readline().split()) if comd[0] == "push_front": d.appendleft(comd[1]) elif comd[0] == "push_b.. 2022. 10. 4.
JAVA - 객체 & 인스턴스 1. 멤버 변수 - 객체에 정의된 속성 - 형식 : 접근지정자 데이터타입 변수명; ex) public String name; 2022. 10. 2.