일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 빅데이터
- 아스키코드
- 그리디
- 문자열
- 배열
- 탐색
- 프로그래머스
- 다이나믹프로그래밍
- 브루트포스
- BufferedReader
- 백트래킹
- 구현
- LIS
- BFS
- oracle
- 스택
- Java
- 시뮬레이션
- dfs
- 다리 만들기
- 백준
- 완전탐색
- HashMap
- Python
- Stack
- SQL
- DP
- 새벽코딩
- Queue
- Today
- Total
목록SQL (12)
새벽코딩
SQL튜닝의 첫단계는 실행계획을 어떻게 세우냐에 달려있다고 해도 과언이 아니다. 이 실행계획을 담당하는 옵티마이저는 DBMS 서버 내부에서 프로시저를 만드는 것을 담당한다. 정리하자면, DBMS 내부에서 프로시저를 작성하고, 컴파일하여 실행가능한 상태(실행계획)를 만드는 전 과정을 'SQL 최적화' 라고 한다. 최적화는 다음과 같은 순서로 진행된다. 1. SQL 파싱 1) 파싱 트리 생성 : SQL 문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성. 2) Syntax 체크 : 문법적 오류가 없는지 확인. 3) Semantic 체크 : 의미상 오류가 없는지 확인. 2. SQL 최적화 본격적인 SQL 최적화에 옵티마이저가 역할을 맡는다. 옵티마이저는 여러 실행경로중 하나를 선택한다. 3. 로우 소스 생성..

오늘 회사에서 대용량 데이터들에 대해서 수정을 해야하는 일이 생겼다. 수백개의 데이터를 하나씩 수정하기에는 너무 귀찮았기 때문에 PL/SQL을 이용해서 UPATE문을 반복해서 사용해볼 생각이었다. TEST001 테이블에는 연도, 차수, 대분류코드, 중분류코드, 소분류코드, 일련번호, 조직코드등등 많은 컬럼이 존재한다. 이때 일련번호 컬럼의 값이 0으로 저장되어있는 행의 조직코드를 전부 변경해줘야했었다. 행의 개수가 수백개 이상이기 때문에 일일이 바꿔주기에는 시간이 많이 걸리고 정확도가 떨어질 수 있다는 생각을 했다. 이 데이터의 값을 한번에 바꿔주기위해서 먼저 해당 테이블의 데이터값이 어떻게 저장되어있는지 패턴(?)을 생각해보았다. 결과는 생각보다 간단했는데 일련번호 컬럼의 값이 0인 행의 조직코드는 일..