본문 바로가기

전체글143

[개발환경] 가상환경 virtualenv 가상환경을 사용하는 목적은 프로젝트 관리의 용이성 때문이다. 간단한 예를 들어 설명해보자, 크롤러를 만들기 위해서 selenium, scrapy, requests, bs4 등 다양한 패키지 설치를 하였고, 이후에 웹 어플리케이션을 만들기위해 Flask를 설치했다. 이제 Flask로 만든 웹 어플리케이션을 배포하기 위해 [ pip freeze > requirements.txt ]명령을 실행하게 되면 어떻게될까? 웹 어플리케이션은 Flask 패키지 한개만 필요한데 이전에 크롤러를 만들면서 설치한 패키지들까지 포함되면서 불필요한 패키지들이 포함되는걸 볼 수 있다. 그래서 프로젝트별로 개발환경을 구축하기위해 가상환경에 Python을 생성하여 해당 프로젝트에 필요한 패키지들만 관리하는 것이다. 1. 설치 1 2 .. 2019. 11. 19.
20190925 오늘은 대용량 파티션 테이블 여러개를 조인해야할 일이 있었는데 도무지 속도가 나질 않아서, 플랜을 떠보니 Lested Loops 조인을 타고 있었다. SELECT A.USER_ID , A.DEPT_ID , B.DEPT_NAME FROM EMP_T A INNER JOIN DEPT_T B ON B.DEPT_ID = A.DEPT_ID WHERE 1=1 Lested Loops 조인은 프로그래밍의 반복문처럼 소스 테이블을 기준으로 타겟 테이블을 반복하면서 조인을 한다. for ( int i = 0; i < n; i ++) { for ( int j = 0; j < m; j++) { .... } } 따라서, 대용량 테이블을 조인할 경우 비효율적으로 테이블에 접근하기 때문에 추천하지 않는다. 직접 쿼리를 짜보면서 느낀.. 2019. 9. 25.
자주 사용하는 오라클 DML 정리 /***********************************/ /******* 파티션 테이블 생성 ******/ /**********************************/ CREATE TABLE HEO.MY_CONTENTS ( STRD_DT VARCHAR2(8) NOT NULL , CNTNTS_ID VARCHAR2(10) NOT NULL , SUBJECT VARCHAR2(50) , CONTENTS VARCHAR2(4000) , LOAD_DTTM VARCHAR2(14) ) TABLESPACE TS_HEO_DAT PARTITION BY RAGNE ( 'STRD_DT' ) ( PARTITION PT_MIN VALUE LESS THAN ( '20181231' ) , PARTITION PT_20190.. 2019. 9. 23.