[toad] 토드 SELECT 구문에서 한글이 깨지는 현상

database 2012. 10. 5. 10:29
반응형

1. 자신의 Toad 캐릭터 셋을 확인.


SELECT * FROM NLS_DATABASE_PARAMETERS

WHERE PARAMETER = 'NLS_CHARACTERSET';



2. 레지스트리 변경.


결과값 'KO16MSWIN949' (<-다를수 있음) 을 자신의 레지스트리에 쓴다.

시작 -> 실행 -> REGEDIT

HKEY_LOCAL_MACHINE

SOFTWARE

ORACLE

KEY_OraClient11g_home1  (<- 버전에 따라 다를수 있음)

NLS_LANG 의 값을 'KOREAN_KOREA.KO16MSWIN949' 로 변경



3. 시스템에 환경변수 추가


컴퓨터 -> 속성 -> 고급시스템설정 -> 환경변수 -> (시스템 변수) 새로만들기

이름 : NLS_LANG

값 : KOREAN_KOREA.KO16MSWIN949




※ 참고 : http://metalzang.blog.me/130127660830


※ 예상 하건데 오라클 클라이언트 깔았을때 문제가 생기는것 같음.

반응형

[erwin] ERWIN 설정하기

database 2012. 10. 5. 10:28
반응형

1. erwin 파일을 생성한다.

File > New     Logical/Physical 선택

 

2. 우선 Logical을 기반으로 ERD 작성

로지컬의 테이블 이름 규칙: PHYSICAL 이름[SP]LOGICAL 이름

PHYSICAL이름이 PHYSICAL 이름_LOGICAL 이름  ---> PHYSICAL 이름으로 변경

 

3. 컬럼을 만든다. 명명 규칙은 테이블 이름에 준한다.

 

4. Display option(LOGICAL)

Format > Display Level: Attribute

Format > Entity Display: Attribute Datatype, Primary Key Designator, Forreign Key Designator, Alternate Key Designator

 

5. Display option(PHYSICAL)

Format > Display Level: Column

Format > Table Display: Column Datatype, Null Option, Primary Key Designator, Foreign Key Designator, Alternate Key Designator


6. 코드 생성용 템플릿 만들기

Physical 선택

Tools > Forward Engineer > Schema Generation > Options 탭

전체 체크 해제


※ Create 템플릿 만들기

(좌탭) Table > (우탭) Create > Table

(좌탭) Column > (우탭) Physical Order, Default Value(Create)

(좌탭) Index > (우탭) Create Index > Table Index > Primary Key (PK), Alternate Key (AK),     Inversion Entry (IE)

(좌탭) Referential Integity > (우탭) Primary Key (PK) (ALTER/PK), Foreign Key (FK) (ON DELETE, ON UPDATE, Statement Format (ALTER/FK)), UNIQUE(AK) (ALTER/AK)


상단에 Save As 클릭

Selected model 선택

Enter Option Set name : CREATE


※ DROP 템플릿 만들기

(좌탭) Table > (우탭) Drop > Table


상단에 Save As 클릭

Selected model 선택

Enter Option Set name : DROP


7. 코드 생성하기

Physical 선택

Tools > Forward Engineer > Schema Generation

Option Set : CREATE, DROP 선택

하단에 Preview 선택


생성된 코드 복사

반응형

[oracle] 오라클 서비스 수동으로 켜고, 끄기(bat 파일 생성)

database 2012. 10. 5. 09:47
반응형

Q. 오라클을 설치하면 생기는 서비스를 수동으로 켜고 끄자.






오라클을 설치하게 되면,


오라클을 사용하기 위한 서비스가 윈도우에 등록되게 되는데,


항상 실행중이기 때문에,


컴퓨터의 리소스를 많이 잡아먹게 된다.


게다가 오라클 자체도 굉장히 크기 때문에,


점점 컴퓨터의 속도 저하나, 램의 압박이 있을수 있습니다.





그래서 bat 파일을 생성해서 서비스를 죽이고 살리면서,


리소스를 확보할 수 있습니다.


우선 제어판 -> 관리도구 -> 서비스를 실행합니다.

(아래 서비스는 버전에 따라 이름이 다를수 있음)



OracleOraDb11g_home1TNSListener

OracleServiceORCL

OracleDBConsoleorcl

OracleOraDb11g_home1iSQL*Plus


해당 서비스를 찾아서 모두 수동으로 바꿔줍니다.


그리고 메모장을 열어 아래 파일을 만들어줍니다.


orcl_start.bat

net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
net start OracleDBConsoleorcl
isqlplusctl start




orcl_stop.bat

net stop OracleDBConsoleorcl
net stop OracleServiceORCL
net stop OracleOraDb11g_home1TNSListener
isqlplusctl stop



파일을 생성한후 실행하게 되면,


오라클과 관련된 서비스가 켜고 꺼집니다.


반응형

[db] commit 커밋, rollback 롤백

database 2012. 9. 28. 15:03
반응형

※ update, delete 문 실행시 DB에서 임시세그먼트에서 처리함
 
① commit을 날리면 실제로 실행
※ commit, 인정

해당 작업을 실제로 반영
 
* 삭제시 시퀀스 넘버 초기화 안될시
* 기타등등
* java에서는 자동으로 오토커밋으로 되어 있음
* Connection.setAutoCommit(false);
 
 
② rollback을 날리면 원상복구
※ rollback, 원상복구
해당 작업을 원상복구
 
* 삭제 후 실수 했을때 의 복구
* commit 실행후 복구 안됨 ㅠ

반응형

[db] 정렬, 오름차순, 내림차순

database 2012. 9. 28. 15:02
반응형

 

--ASC, ascending, 오름차순(1,2,3,4,5)
 select * from test(테이블명) order by seq(정렬시킬 컬럼) asc;
 
 
 
--DESC, descending, 내림차순(5,4,3,2,1)
select * from test(테이블명) order by seq(정렬시킬 컬럼) desc;
반응형

[oracle] 계정 생성, 추가, 권한, 삭제

database 2012. 9. 28. 15:00
반응형

 

--계정 생성
create user USERID(계정명) identified by USERPW(암호);
 
--계정 권한
grant connect, resource, dba to USERID(계정명)
 
--계정 삭제
drop USERID(계정명) cascade;
반응형

[oracle] 오라클 관리자 비번 설정, 잃어버렸을 때

database 2012. 9. 28. 14:58
반응형

 

--관리자 로그인
C:\> sqlplus "/as sysdba"
show user
USER is "SYS"
 
--암호 설정
alter user sys identified by 암호;
alter user system identified by 암호;
 
--접속
connect sys/암호 as sysdba
connect system/암호
반응형

[db] 테이블 총 갯수 카운트시 성능 저하

database 2012. 9. 28. 14:30
반응형

select count(1) from 테이블 where 조건
 
모든 데이터ROW에 전부 카운트가 들어가기 때문에 성능이 매우 안좋다.

 

select (select count(1) from 테이블 where 조건), 컬럼 from 테이블 where 조건

 

이렇게 하면 총갯수를 가져오는데.

 

성능이 아주 안좋아.
 
매번 갯수를 합산 하기 때문에 문제가 생기지.

 

 

또는 다른 방법으로.

 

with a as select count(1) from 테이블 where [조건]

with a as select count(1) cnt from 테이블 where [조건]

select a.cnt , [컬럼] from table where [조건]
 
이렇게 하는 방법도 있구.

첫번째 보다 성능이 좋구.

그다음으로 분석함수를 사용하는 방법이 있어.

 


그러므로 분석함수를 사용하는 것이 최고
분석함수로 카운트 하는 법 : http://blog.naver.com/kiho0530/150101025019

반응형

[db] Alter Table DDL

database 2012. 9. 28. 14:26
반응형

COLUMN
-------------------------------------------------------------------------------------------
삭제
ALTER TABLE [table_name] DROP COLUMN column_name;
 
추가
ALTER TABLE [table_name] ADD (column_name data_type(n));
 
수정
ALTER TABLE [table_name] MODIFY (column_name data_type( ));
 
DEFAULT VALUE, NOT NULL조건
ALTER TABLE [table_name] MODIFY (column_name column_type DEFAULT 'value' NOT NULL);
>> 이렇게 해주면, 컬럼이 생성되며 default 값은 'value'가 되고, NOT NULL 조건이 형성되게 된다.

이름 바꾸기
ALTER TABLE [table_name] RENAME COLUMN old_column_name TO new_column_name;
--------------------------------------------------------------------------------------------
 
 
TABLE
--------------------------------------------------------------------------------------------
테이블명 바꾸기
ALTER TABLE [table_name] RENAME TO [new_table_name];
 
테이블 통계 정보 생성 하기
ANALYZE TABLE [table_name] COMPUTE STATISTICS;
 
새로운 정보를 수집하기 전에 기존 정보를 삭제 할때
ANALYZE TABLE [table_name] DELETE STATISTICS;
 
특정 컬럼에 대한 DATA의 분포
ANALYZE TABLE [table_name] COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
 
9iR2경우 테이블을 삭제하고 다시 생성하면,
히스토그램이 또는 기존에 가지고 있던 통계정보들이 날라가는데,
이후 통계 작업을 생성하면 히스토그램이 no에서 yes로 바뀌어져 있는다.
 
테이블 통계 정보 생성하기 다른 방법
BEGIN
   DBMS_STATS.GATHER_TABLE_STATS('shema_name', 'table_name', CASCADE => TRUE);
END;
>> 해당 테이블에 의존된 오브젝트 들도 통계치 데이터를 생성한다. (좀더 자세히 알아봐야겠다.)
>> 700만건, 인덱스 2, PK, 통계치 만드니 1시간 걸렸다. 원래 이렇게 느린가!!!
 
※테이블에 통계정보를 생성하면, histogram 이 No에서 Yes로 바뀐다.
 
 
파티션 추가
ALTER TABLE [table_name] ADD PARTITION [partition_name]
VALUES LESS THAN ('high_value') TABLESPACE [tablespace_name];
--------------------------------------------------------------------------------------------
 
 
CONSTRAINT PK
--------------------------------------------------------------------------------------------
PK추가
ALTER TABLE [table_name] ADD CONSTRAINT [index_name]
PRIMARY KEY ( column_name )
USING INDEX
TABLESPACE  tablespace_name;

PK해제
ALTER TABLE table_name DROP PRIMARY KEY;
 
이름 바꾸기 (CONSTRAINT RENAME)
ALTER TABLE [table_name] RENAME CONSTRAINT [before constraint name] TO [after constraint name];

--------------------------------------------------------------------------------------------
 
 
INDEX
--------------------------------------------------------------------------------------------
이름 바꾸기
ALTER INDEX index_name RENAME TO new_index_name;
 
인덱스 삭제
DROP INDEX index_name;
 
인덱스 생성
CREATE INDEX index_name ON table_name
(column1, column2....)
no/logging
TABLESPACE tablespace_name
no/parallel;
--------------------------------------------------------------------------------------------
 
 
 
STORAGE
--------------------------------------------------------------------------------------------
MAXEXTENT 사이즈 조절
ALTER TABLE table_name STORAGE (MAXEXTENTS number);
 
해당 TABLE_NAME에 MAXEXTENTS를 NUMBER만큼 늘린다.

--------------------------------------------------------------------------------------------
 
TABLESPACE
--------------------------------------------------------------------------------------------
테이블 스페이스 변경
 
ALTER TABLE table_name MOVE TABLESPACE tablespace_name;
 
ALTER INDEX index_name REBUILD TABLESPACE tablespace_name;
 
>> 기존 테이블 스페이스를 변경 시켜 준다.
 
>> REBUILD : 전에는 REBUILD 가 없이, DROP 후 CREATE 했어야 했다.
                  인덱스는 MOVE가 아닌 REBUILD로 테이블 스페이스를 이동한다.

 

반응형

[db] 삽입 insert, 삭제 delete, 선택 select 쿼리

database 2012. 9. 28. 14:23
반응형

* 삽입
    insert into [테이블이름] values('값1', '값2', '값3');
 
*삭제
    delete [테이블이름] where [조건식];
    ※ 테이블 삭제후 commit; 필수 !
 
* 선택
    select [컬럼명] from [테이블이름]

 

* 수정
    update [테이블이름] set '값1', '값2' from [테이블이름]

반응형