분류 전체보기 261

[PostgreSQL] pg_hba.conf 파일 설정

pg_hba.conf 파일 pg_hba.conf 파일은 클라이언트 인증 파일로, 데이터베이스 클러스터의 데이터 디렉토리에 저장되는 환경설정 파일로 제어가 된다. hba는 호스트 기반 인증(host-based authentication)의 약어이다. 해당 파일은 initDB.exe를 실행하면 data 디렉토리 안에 생성된다. # Put your actual configuration here # ---------------------------------- # # If you want to allow non-local connections, you need to add more # ""host"" records. In that case you will also need to make PostgreSQL # ..

Database/PostgreSQL 2023.04.27

[Oracle] 인덱스 힌트(INDEX HINT)

인덱스 힌트란? 인덱스 힌트는 쿼리 실행 시 인덱스를 사용하도록 강제하는 주석이다. 잘못된 SQL문이나 부정확한 통계 정보로 인한 *옵티마이저의 잘못된 실행 계획을 바로 잡을 수 있다. *옵티마이저: CBO 방식에서 주어진 환경(통계 정보, SQL문) 하에서 최적의 실행 계획을 제공한다. ▷멀티라인 주석: SELECT /*+ [힌트절] */ ~ ▷싱글라인 주석: --+ ▷여러 개의 인덱스 힌트 사용 => /*+ [힌트절] [힌트절] ... */ SQL문에서 힌트절은 주석문 안에 표시하며, 잘못된 힌트절로 인해 에러를 반환하는 경우는 없다. 인덱스 힌트를 사용하는 이유 데이터베이스 최적화를 위해 쿼리 실행 계획을 개선하고 성능을 향상시키기 위함이다. 데이터베이스가 자동으로 최적의 실행 계획을 선택하지 못할..

Database/Oracle 2023.04.26

[IDEA/Error] Web server failed to start. Port 8080 was already in use.

위와 같은 에러가 발생했을 때의 해결 방법은 간단하다. 일단 나는 윈도우를 사용하므로 cmd창에다 명령어를 입력했다. 명령어는 다음과 같다. netstat -ano | findstr [Port 번호] netstat으로 네트워크 상태를 확인하는데, 이때 findstr로 이미 사용 중인 포트번호를 찾는다. 나의 경우 8080번 포트가 사용 중이었으므로 8080번 포트의 네트워크 상태를 확인한 결과 LISTENING 상태였다. 이 포트번호를 죽여야하므로 PID 5048을 taskkill한다. 명령어는 다음과 같다. taskkill /f /PID [PID 번호] 이때, cmd는 관리자로 실행해야 한다. 안그러면 액세스가 거부되어 taskkill이 먹히지 않는다.

IDE/IDEA (IntelliJ) 2023.04.19

[Oracle] 온라인 SELECT 쿼리 튜닝 순서

온라인 Select문 튜닝 방법론 온라인 SQL의 튜닝방법은 여러 가지가 있을 수 있다. 하지만 그 중에서 가장 기초적이고, 기본적인 방법을 공개한다. 아래의 7가지 항목을 점검하고 약한 곳을 보강하면 된다. 이 글은 SQL 튜닝책을 두 권 정도 본 사람들을 위한 것이다. 튜닝에 자신있는 사람들은 볼 필요가 없다. 1. 적절한 인덱스를 사용하여 Block I/O를 최소화 하라 조인이 없는 경우는 적절한 인덱스를 사용하는 것 만으로도 상당한 효과를 볼 수 있다. 조인이 있는 경우는 특히 Driving(선행) 집합에 신경을 써야 한다. 왜냐하면 Nested Loop 조인을 사용했고, 선행집합의 건수가 많다면, 후행집합의 조인의 시도횟수가 증가하므로 성능이 느려진다. 따라서 적절한 인덱스를 이용하여 선행집합의..

Database/Oracle 2023.04.19

[Oracle] EXISTS()와 IN()

EXISTS() - 문법: EXISTS(subquery) - 서브쿼리만 사용 가능 - 처리 순서: 메인쿼리 -> 서브쿼리 - 서브쿼리의 결과가 단 한 건이라도 존재하면 결과값을 True, 없으면 False로 리턴하고 더이상 쿼리를 수행하지 않는다. SELECT a.USER_NO , a.USER_NM , a.DEPT_NO FROM USR a WHERE a.JOB = 'EMPLOYEE' AND EXISTS (SELECT 1 FROM DEPT b WHERE b.USER_NO = a.USER_NO) - 실행 결과 USER_NO USER_NM DEPT_NO 101 TOM 26 102 SAM 24 DEPT 테이블에서 SAM 2건, TOM 1건, JENNY 0건으로 JENNY를 제외하고 조회가 된다. EXISTS()..

Database/Oracle 2023.04.17

[VMware/Error] Install Tools를 실행할 때 발생하는 오류

VMware Workstation에서 가상머신을 깔면 밑에 'Install Tools'라는 버튼이 생긴다. 이 Install Tools를 클릭했을 때 아래와 같은 문구가 적힌 오류창이 떴다. Setup cannot continue. This program requires that you update the installed OS to SP1 in this virtual machine. (생략) 나는 Windows 2008 R2 Standard를 설치했었는데 구글링하며 여러 곳을 찾아보았지만 해결이 잘 되지 않았다. 그러다 갑자기 Java를 깔지 않았던 게 내 뇌리를 스쳐지나갔다. 설마 했는데 역시나 Java를 깔고 나니 다시 Install Tools를 클릭했을 때 오류 없이 정상적으로 VMware 도구가..

VMware 2023.04.17

[Windows/Error] 원격 데스크톱 연결 시 CreddSSP 암호화 오라클 수정 때문일 수 있습니다

Window 10 자동 업데이트를 통해 2018년 5월 8일에 KB4103721이 설치되면서 위 오류가 발생하게 된다. 이때, 원격 접속 대상 서버에도 패치가 완료되어 있어야 원격 접속이 가능하다. 나의 경우는 VMware에서 Windows server 2012 R2 Datacenter 서버로 원격 접속하려다 오류가 발생하였다. 해결방법1. CredSSP 암호화 취약점 패치 적용 업데이트 다운로드 CredSSP 암호화 취약점 패치가 적용된 업데이트만 선택해서 설치하면 된다. · Windows server 2012 R2: KB4103715 다운로드 · Windows server 2016: KB4103723 다운로드 해결방법2. 암호화 오라클 보호 수준 수정하기 1. "윈도우 키 + R"을 눌러 실행창을 킨..

OS/Windows 2023.04.16

[Javascript] 동등 연산자 ==

동등 연산자 == ==는 동등 연산자(Equality)다. 동등 연산자는 두 개의 피연산자가 동일한지 확인하며, Boolean값을 반환한다. (1) 타입 변환 없이 비교 1) String : 두 피연산자의 문자 순서와 문자열이 동일 ▷ true를 반환 2) Number : 두 피연산자의 값이 동일 ▷ true를 반환. +0과 -0은 동일한 값으로 취급. 어느 한쪽이 NaN일 경우 false를 반환 3) Boolean : 두 피연산자가 모두 true이거나 false ▷ true를 반환 1 == 1; // true "ex" == "ex" // true (2) 타입 변환하여 비교 : 두 개의 피연산자의 타입이 다를 경우, 비교하기 전에 동일한 타입으로 변환시킨다. 1) 숫자와 문자열을 비교 ▷ 문자열을 숫자로..

[Oracle/Error] ora-01950: 테이블스페이스 'users'에 대한 권한이 없습니다

ora-01950: 테이블스페이스 'users'에 대한 권한이 없습니다 위 오류 발생 시 아래의 구문을 실행시키면 된다. ALTER USER 사용자계정명 DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS; 만약 아래와 같은 오류가 발생한다면, ALTER SESSION SET "_ORACLE_SCRIPT"=true;; 구문 실행 후 ALTER USER 사용자계정명 DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS; 구문을 다시 실행하면 'User 사용자계정명이(가) 변경되었습니다.' 라고 뜨면서 정상적으로 변경된다. 이외에 유저 생성 시 해당 유저에게 접속 권한과 리소스 권한을 부여하고 싶다면, GRANT CONNECT, RES..

Database/Oracle 2023.04.07