본문 바로가기

04번. IT 힌트얻기

[Notice]실행계획 카테고리 생성 실행계획에 관련된 카테고리를 생성을 했다. 최근에 Homo Convergence Story를 바탕으로 해서 여러 분야에 대해서 고민을 하고 사유하는 시간을 가지고자 한다. 그 중에 SQL에 대한 고급 기능 이해 및 튜닝에 대한 역량강화를 위해 해당 카테고리를 만들었다. 이것에 대해 나도 모르기에 개념부터 용어부터 하나하나 실행해나가려고 한다. 이 카테고리가 자리가 잡혀갈즈음이 기대된다. 변해있는 나의 모습이~~ 더보기
union vs. union all [ UNION ] UNION 구문은 첫번째 쿼리의 모든 행을 두번째 쿼리의 모든 행과 더하고, 중복된 행을 제거한 후, 결과를 리턴한다. 다음 예를 보면 첫번째 쿼리에서 EMPLOYEES_ID와 LAST_NAME에서 LAST_NAME 열이 A나 B로 시작하는 직원 레코드를 얻고, 두번째 쿼리에서는 EMPLOYEES_ID와 LAST_NAME 열에서 LAST_NAME이 B나 C로 시작하는 직원 레코드를 얻었다. 쉽게 알 수 있겠지만 B로 시작되는 LAST_NAME 열을 가지는 직원 레코드는 첫번째와 두번째 쿼리 모두에서 선택되며 , 중복되는 행들은 결과셋에서 제외된다. select employee_id, last_name from employees where last_name like 'A%' or last.. 더보기
[Function] row_number() over(partition by...order by ....) select employee_id, job_id, last_name, salary, row_number() over( PARTITION by job_id order by salary) rn, count(*) over ( partition by job_id) cnt from hr.employees 확인할 것 row_number() over (partition by job_id order by salary) 결과값 여기서는 job_id 별로 다시 row_number를 매기는 것이다. 그리고 row_number를 줄때 기준은 salary가 가장 높은 것을 1을 주는 방식으로 진행된다. 더보기
[SQL고수되기] 여덟번째 이야기 출처 : 네이버지식인 노하우 http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=553053&qb=U1FM6rOg7IiY65CY6riwLeyXrOuNn+uyiOynuA==&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=goY3Qc5Y7twssZRccelssc--088148&sid=TovECl6Ri04AAH8Hfo8 어제 머리 아프게(복잡하게) 그 어렵다는 유효데이터 가공 작업을 해보았습니다. 많이 지치죠? 머리가 터질것 같은 분들도 계시고. 저 혼자생각이였으면 좋겠음 ^^ 이제 부터는 한 요청(주제)에 대한 재정의(Defined) 방법에 대해 상황에 맞는 기법을 소개하면서 이야기 해나갈까합니다. 오늘부.. 더보기
[SQL고수되기] 일곱번째 이야기 출처: 네이버지식인 노하우 http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=553042&qb=U1FM6rOg7IiY65CY6riwIC0g7J286rOx67KI7Ke47J207JW86riw&enc=utf8&section=kin&rank=1&search_sort=0&spq=0 CREATE TABLE시에 Tablespace부분 문제 생기실수도 있으실듯 없어서리.. 제가 깜밖했네요 이렇게 만들시면 됩니다. CONN SYSTEM; CREATE TABLESPACE TS00 DATAFILE 'D:\oracle\product\10.2.0\oradata\oracle\TS00.dbf' SIZE 1000M AUTOEXTEND OFF LOGGING ONLINE PE.. 더보기
[SQL고수되기] 여섯번째 이야기 출처: 네이버지식인 노하우 http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=552927&qb=U1FM6rOg7IiY65CY6riw&enc=utf8&section=kin&rank=12&search_sort=0&spq=0 오늘부터 어제 만든 테이블들을 활용하여 쿼리(논리Entity)를 만들어보겠습니다. 그전에 논리 Entity에 대한 정의에 대해 상세하게 다뤄볼까합니다. WORK_INF(출퇴근정보) ------------------------------------------- 출근일자 사번 출근일시 퇴근일시 (ATTN_YMD) (SNO) (CHECK_IN) (CHECK_OUT) ---------------------------------------.. 더보기
[SQL고수되기] 다섯번째 이야기 출처 : 네이버지식인 노하우 http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=552905&qb=U1FM6rOg7IiY65CY6riw&enc=utf8&section=kin&rank=3&search_sort=0&spq=0 지난 이야기에서 생성한 테이블 정보들입니다. 1.아르바이트생 정보 CREATE TABLE EMP_INF ( EMP_NO CHAR (8 ), /* 사번:년(2)+월(2)+일번(4) */ SNAME VARCHAR2(50), /* 이름 */ PHONE VARCHAR2(20), /* 핸드폰 */ ... ... CONSTRAINT EMP_INF_PK PRIMARY KEY (EMP_NO) USING INDEX TABLESPACE TS00 P.. 더보기
[SQL고수되기] 네번째 이야기 출처: 네이버지식인 노하우 http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=552877&qb=U1FM6rOg7IiY65CY6riw&enc=utf8&section=kin&rank=6&search_sort=0&spq=0 이번 이야기에서는 저번에 이어 테이블을 Create할 것입니다. 그나저나 다른 두개 테이블에대해서 PK는 만들어오셨는지요. 참~~ 쉽죠~잉 ^^ 가장 중요한건 EMP_INF 테이블하곤 관리 자체가 다르다는 점입니다. 그 이유는 PK의 첫번째가 시기정보가 들어간다는 점입니다. 이게 굉장히 중요한데요.. 앞으로 차차 설명드리겠습니다. 그럼 테이블을 만들어봐야 겠지요? Table 생성은 보통 이렇게들 하시지요? CREATE TABLE E.. 더보기
[SQL고수되기] 세번째 이야기 출처 : 네이버지식인 노하우 http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=552842&qb=U1FM6rOg7IiY65CY6riw&enc=utf8&section=kin&rank=7&search_sort=0&spq=0 테이블 설계에 대해서 이야기해볼까합니다. 앞으로 이야기할 내용은 쿼리가 잘 수행되기 위해 고려해야 할 내용이라는 점을 다시 한 번 말씀드립니다. 몇달전에 제가 현재 소속되어 있는 부서로 한 통의 메일이 전달되었습니다. 현업(설비기술팀)에서 온 짜증이 섞인 내용이었습니다. 이과장님 저희 시스템으로 조회하면 RawData가 잘 나오는데 A시스템을 -20시간 검색하면 조회가 잘되지 않습니다. 어쩌구 저쩌구.. 빠른 조치 부탁드립니다. .. 더보기
[SQL고수되기] 두번째 이야기 출처 : 네이버지식인 노하우 (http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=552804&qb=U1FMIOqzoOyImOuQmOq4sA==&enc=utf8&section=kin&rank=2&search_sort=0&spq=0) 첫번째 이야기에서 물리/논리 엔티티라는 말이 나왔었습니다. 이것에 대해 구체적으로 이야기를 해볼까합니다. 물론 쿼리를 잘 짜는 것도 중요합니다. 그러나 가장 중요한 것은 물리적인 Entity입니다. 최초에 DB설계시에 논리적으로 RDBMS에 맞게 분석을 통해 잘 정리된(정형화된, 구조화된, 무결성의...) 데이터일수록 쿼리 설계 시 막강한 영향력을 발휘하게 됩니다. 쿼리를 짜려다 보니 헉, 이건 생각 못했네, 테이블 바.. 더보기