전체 글29

SQL 튜닝 - 실행계획 및 LIKE CONTAINS

간단한 쿼리를 통해 실행 계획을 살펴보자. >> Toad에서 실행계획 보는법 Ctrl + E LIKE '%' 구분의 실행계획 확인 SELECT * FROM BOOK_CODE WHERE BOOKNAME LIKE '%코딩%' Like 문으로 쿼리를 하면 INDEX를 타지 않고 테이블을 통으로 찾아서 읽고있다. =>Table Access Full 그렇다면 BOOKNAME 컬럼에 강제로 INDEX를 태워보자. CREATE INDEX BOOK_CODE_BKNAME ON BOOK_CODE(BOOKNAME); SELECT /*+ INDEX(a BOOK_CODE_BKNAME)*/ A.* FROM BOOK_CODE A WHERE BOOKNAME LIKE '%코딩%'; Cost 가 대폭 증가해버렸다.. Like 문 빠르게..

동적계획법 - 백준 9184

백준 9184 동적계획법 - 신나는 함수 여행 문제 재귀 호출만 생각하면 신이 난다! 아닌가요? 다음과 같은 재귀함수 w(a, b, c)가 있다. if a 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise it returns: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) 위의 함수를 구현하는 것은 매우 쉽다. 하지만, 그대로 구현하면 값을 구하는데 매우 오랜 시간이 걸린다. (예를 들면, a=15, b=15, c=15) a, b,..

Map - 숫자 카드

백준 10815 Map - 숫자 카드 >> 기본적인 중복제거를 위한 Map 사용 문제 파이썬에서는 'dict' 클래스를 사용하자 Map 은 순차적이지 않고 Key-Value 구조로 만든 데이터형식이며, Key값은 중복을 허용하지 않는 특성을 이용한다. 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작..

정렬 - 좌표 압축

백준 18870 정렬 - 좌표 압축 문제. 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력. 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력. 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 제한. 1 ≤ N ≤ 1,000,000 -109 ≤ Xi ≤ 109 >> 몹시 문제가 불친절하다. 해당 숫자의 순위를 출력하는 문제. 서로 다른 좌표의 개수 ..

정렬 - 좌표 정렬하기

백준 11650 정렬 - 좌표 정렬하기 오답1. 시간초과 . 접근. 배열 2개 준비. 1. 배열1 을 정렬할 때 배열2도 배열1의 기준에 맞춰 같이 정렬 2. 배열1 을 for문으로 쭉 탐색하면서 정렬이 필요한 시작 번호, 끝 번호를 추려내어 배열2를 정렬. >> 정답은 도출하는 데에는 문제가 없지만 시간 초과가 떴다.. 이 문제는 노가다식의 방법으로 푸는 것이 아니다.. 어떤 방법으로 풀어야 할까?? import sys N=int(input()) arr=[] arr2=[] for _ in range(N): a,b=sys.stdin.readline().split() arr.append(a) arr2.append(b) s=100001 for i in range(0,N-1): for j in range(1,..

[AWS] Lightsail 아마존 라이트세일 초기설정

sudo su passwd passwd centos vi /etc/ssh/sshd_config service sshd restart exit 호스팅 업체를 알아보는 중.. 아마존 라이트세일 상품보고 바로 인스턴스 생성 AWS Lightsail 인스턴스 생성 후 putty를 이용하여 패스워드 접속까지 설정해보자. AWS Lightsail 인스턴스 생성하기 인스턴스 위치 `서울` 이미지 - 편한거 선택 인스턴스 성능 및 가격 자그마치 트래픽 1TB, 20GB SSD, 1vCPU, 512MB 가격이 3.5$ .. 혜자가 따로 없다. 첫 달 무료는 덤 이름정하고 생성 대기 중 -> 실핼 중으로 바뀌면 바로 사용 가능하다. 연결 설정 간단한 설정을 통해 패스워드로 접근하도록 설정해보자. 1. `SSH를 사용하여 ..

기타 2020.12.11

[SQLite] Noejs SQLite 설치 간단예제

Nodejs SQLite Install Nodejs 연동 바로가기 --> (준비중..) Nodejs 연동 전 간단한 환경설정 진행 SQLite 설치 아래 주소에서 다운로드 진행 www.sqlite.org/download.html SQLite Download Page Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for precomp..

한글 pdf 변환 표짤림 현상 해결

한글2018 특정 버전에서 PDF변환시 표짤림 현상이 발생한다. 해당현상 : 편집용지수정 - 길이 : 1000 PDF변환 해결 - PDF드라이버 환경설정 한글 -> 도구 -> 환경설정 -> 기타 -> PDF드라이버 Hancom PDF 를 바꿔줘야한다. 프린터설정 : 길이 1000 많은 프린터 설정 중 길이가 수정 가능한 프린터가 있으면 수정 후 PDF드라이버 환경설정에서 해당 프린터를 잡고 변환시켜준다. 길이수정이 불가능할 때 보통 다음과 같은 메시지나 길이 수정이 불가능 하다면, 대법원 PDF변환기를 설치하여 프린터속성을 추가하자. ecfs.scourt.go.kr/ecf/ecf800/ECF830.jsp 프로그램 설치 ecfs.scourt.go.kr Internet Explorer 로 url 타고가서 해..

기타 2020.11.30

[Oracle] TimeStamp 시점 데이터 복구

결론 TimeStamp Query 복사 후 사용 select * from temp as of timestamp(systimestamp-interval '120' minute) --두 시간 전 데이터 조회 select * from temp as of timestamp(systimestamp-interval '2' hour) as 부터 끝까지 복사해서 table 뒤에 붙여서 사용 원리 - `undo data` 작업을 하기 전 상태로 되돌릴 수 있는 데이터 데이터를 수정하거나 지우고 commit 했다면 `undo segment에 저장` 하게 된다. Timestamp 를 사용하면 이 저장된 곳을 참조한다. 활성화된 undo segment 조회. select * from v$rollname undo segment..

[Oracle] Select문 결과를 주기적으로 이메일 발송하기

Oracle mail, 오라클 메일, Version : 11G 준비사항 & 순서 1. SMTP 메일서버 -서버구축 후 메일서버에서 접속 허용 설정 2. network service 설정 -오라클에서 접근 허용 3. SELECT문 작성 4. 프로시저 만들기 5. 오라클 JOB 등록 기존 스프링 스케쥴러로 데이터를 주기적으로 발송했지만, 빈번한 추가요청에 대응하여 오라클에서 직접 처리했다. 1. SMTP 메일서버구축 -- link 2. Network Service 설정 -- link 3. 주기적으로 보낼 SELECT문 작성 SELECT '1' NO, '구분1' GU,'상태1' STATUS,TO_CHAR(SYSDATE,'YYYY-MM-DD') IL,'ID1' ID,'유저1' NM,'비고1' BG FROM DU..