1. 시스템 업데이트


[root@localhost smoh]# yum -y update



2. PostgreSql 설치


[root@localhost smoh]# yum list postgresql*

[root@localhost smoh]# yum install postgresql-server



3. 설치 확인


[smoh@localhost ~]$ postgres -V



4. PostgreSql초기화


[root@localhost /]# postgresql-setup initdb



5. PostgreSql Start


[root@localhost /]# systemctl enable postgresql.service
[root@localhost /]# systemctl start postgresql.service


6. 동작확인


[root@localhost data]# systemctl status postgresql


















반응형

1. pg_hba.conf 수정


pg_hba.conf파일은 pgsql 설치폴더의 data폴더 내부에 존재합니다.

이 파일을 열어 # IPv4 local connections: 아래에 다음 내용을 추가해 줍시다.

host    all             all             0.0.0.0/0           md5



2. postgresql.conf 수정


postgresql.conf파일은 pgsql 설치폴더의 data폴더 내부에 존재합니다.

이 파일을 열어 listen_addresses항목과 port항목을 확인합니다.



3.  방화벽 포트 허용


위의 단계에서 확인한 포트를 방화벽에서 열어줍니다.

3.1. 제어판의 시스템 및 보안 항목에서 방화벽으로 이동합니다.

3.2. 좌측의 고급설정을 클릭합니다.

3.3. 인바운드 규칙에 새 규칙을 추가합니다.

3.3.1. 포트를 선택합니다

3.3.2. TCP에 적용되며 특정 로컬포트에 위에서 확인한 포트를 입력합니다.

3.3.3. 연결허용을 선택합니다.

3.3.4. 도메인, 개인, 공용을 선택합니다.

3.3.5. 원하는 이름 및 설명을 입력하고 완료합니다.



4. pgSql 재시작.


pgAdmin을통해 DB를 재시작합니다.

설치된 pgSql을 우클릭해 Reload Configuration을 클릭합니다




반응형

'Programming > Databse' 카테고리의 다른 글

[PostgreSql] 유저 및 데이터베이스 생성  (0) 2017.06.15
[PostgreSql] Centos7에서 PostgreSql 설치  (0) 2017.06.15
[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07

실행계획(Execution plan) 분석하는 방법.



프로시저와 같은 디비 쿼리를 짜다보면 성능에 대한 의문이 듭니다.

이때 간단하게 확인해 볼 수 있는방법이 실행계획을 통한 확인입니다.



1. 예시 쿼리


SELECT *

FROM emp t1, dept t2

WHERE t1.dept_no = t2.dept_+no

AND not exists

       ( SELECT *

          FROM salgrade

          WHERE sal BETWEEN 1000 AND 2000)



2. 예시쿼리에 따른 실행 계획

 IDP_IDOperation Ojbect name
 0 

 SELECT STATEMENT

 
 1 0

     FILTER

 
 2 1

         NESTED LOOPS

 
 3 2

             TABLE ACCESS FULL

EMP 
 4 2

             TABLE ACCESS BY ROWID

DEPT
 5 4

                  INDEX UNIQUE SCAN

PK_DEPT
 6 1

         TABLE ACCESS FULL

SALGRADE



3. 실행 계획 분석.

A. 가장 먼저 실행되는부분이 가장 아래에 있는 ID가 5번인 INDEX UNIQUE SCAN 부분.

B. ID 5~ 4 단계는 DEPT테이블의 PK INDEx인 PK_DEPT 를 SCAN하여 얻은 ROWID로 DEPT 테이블을 ACCESS 한다.

C. 3번의 EMP 테이블의 ACCESS 방법은 Table Full Scan으로 읽어 4번과 Nested Loop 조인 하는 형식.

D. 다시 Nested Loop 된 결과는 Full Table Scan으로 읽은 SALGRADE 테이블에 의해 Filter 되어 결과가 나오게 된다.



4. 트리 구조로 확인하기.



5. 분석


A. Cost는 낮을수록 좋다.

B. Full Table Scan이 없을수록 좋다.




출처: http://www.jakartaproject.com/board-read.do?boardId=dbtip&boardNo=114193419425900&command=READ&t=1411017575107 


반응형

'Programming > Databse' 카테고리의 다른 글

[PostgreSql] Centos7에서 PostgreSql 설치  (0) 2017.06.15
[PostgreSql] 윈도우서버에서 PostgreSql 외부 접속 허용  (0) 2017.06.14
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17

오라클에서 Table검색시 

대소문자에 상관없이 검색하는 방법

검색결과를 대소문자로 변환하는 방법




UPPER/LOWER

검색결과를 대문자/소문자로 변경해준다.



e.g. 검색결과를 대문자/소문자로 나타내기.


SELECT UPPER(st.someCol) AS someCol

FROM someTable st;


SELECT LOWER(st.someCol) AS someCol

FROM someTable st;



e.g. 대소문자에 상관없이 검색하기.


SELECT *

FROM someTable

WHERE LOWER(someCol) = LOWER(searchKeyword);


SELECT *

FROM someTable

WHERE UPPER(someCol) = UPPER(searchKeyword);

반응형

'Programming > Databse' 카테고리의 다른 글

[PostgreSql] 윈도우서버에서 PostgreSql 외부 접속 허용  (0) 2017.06.14
[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17
[Oracle] ORA-00972  (0) 2017.02.17


ORA-02292

무결성 제약조건이 위배되었습니다 - 자식 레코드가 발견되었습니다.

Constraint violation - child records found



원인

삭제하고자하는 데이터가 다른 테이블의 pk 혹은 fk등 으로 사용되고 있음.



해결

삭제하고자하는 데이터를 사용하는 테이블에서 데이터를 먼저 삭제한다.

Constraint를 수정한다.

반응형

'Programming > Databse' 카테고리의 다른 글

[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17
[Oracle] ORA-00972  (0) 2017.02.17
[Oracle] Column 정보 수정하기.  (0) 2017.02.17



Row정보 Update하기.



UPDATE #TABLE_NAME#

SET #COL_NAME1# = #UPD_VAL1#,

#COL_NAME2# = #UPD_VAL2#

WHERE #CONDITION#;


Ex)

UPDATE student

SET student_rank = 1,

student_name = 'someName'

WHERE student_key = 23;

반응형

'Programming > Databse' 카테고리의 다른 글

[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] ORA-00972  (0) 2017.02.17
[Oracle] Column 정보 수정하기.  (0) 2017.02.17



ORA-00972

Identifier is too long

식별자가 너무 깁니다.




원인 : 식별자의 길이다 너무 길게 설정함.


해결 : 식별자의 길이를 30자보다 짧게 수정합니다.

반응형

'Programming > Databse' 카테고리의 다른 글

[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17
[Oracle] Column 정보 수정하기.  (0) 2017.02.17


1. MODIFY


ALTER TABLE #TABLE_NAME#

MODIFY #COL_NAME# #DATA_TYPE# (DEFAULT #DEFAULT_VAL#) (NOT NULL or NULL);


Ex)

ALTER TABLE someTable

MODIFY someCol NUMBER NULL



반응형

'Programming > Databse' 카테고리의 다른 글

[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17
[Oracle] ORA-00972  (0) 2017.02.17

+ Recent posts