database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40144 게시물 읽기
No. 40144
유니크하고 랜덤한 일련번호 처리
작성자
초심
작성일
2013-05-24 16:51ⓒ
2013-05-24 17:09ⓜ
조회수
7,338

 안녕하세요?

좋은 방법을 찾고자 문의드립니다.

제가 해야할 기능은

숫자형 11자리의 유니크하고 랜덤한 번호(key)를 가져와서 다른 데이타와 함께 insert 처리 해야 됩니다.

물론 기존에 등록된 번호(key)와도 유니크해야 됩니다.

그런데 한 번에 처리해야 될 데이타 건수가 많습니다. 십만~백만 이상 일 수가 있습니다.

또한 이 일을 처리하는 모듈이 하나 이상일 수 있습니다.

시퀀스도 아니고 제 경험상 좋은 방법이 안 떠오르네요;;

많은 조언 부탁드립니다.

이 글에 대한 댓글이 총 4건 있습니다.

꼭 11자리가 아니여도 된다면

 

SYS_GUID() 를 사용하시는것도

채용근(taiji97)님이 2013-05-24 16:55에 작성한 댓글입니다.

11자리이어야 됩니다 ㅠㅜ

초심님이 2013-05-24 18:02에 작성한 댓글입니다. Edit

속도가 잘 나올지는 모르겠지만 아래와 같이 하면 되지 싶은데요..

1. seq, random_number(11자리) 로 구성된 테이블을 만들고 테이블에 값을 미리 넣습니다.

2. 사용하는 쪽에서는 시퀀스로 값을 받아 1번에서 만든 테이블에서 해당 시퀀스 값에 해당하는 random_number를 조회 하여 사용합니다. 

문제점은 1번 테이블이 너무 커질수 있을 것 같은데요...
1번 테이블 데이터를 3,4일 정도 사용할 만큼 넣어두고
매일 배치로 사용된 값을 지우고 하루정도 사용할 값을 새로 만들고 하는 식이면 조금 나을 것 같습니다.
새로 random_number를 만들 때는 사용된 테이블과 1번 테이블에 없는 값으로 하면 될 것 같습니다.
 

전영식(garam111)님이 2013-05-28 19:27에 작성한 댓글입니다.

garam111 님 감사

저도 말씀하신 방식으로 생각했습니다.

미리 랜덤한 키 생성해 놓고  시퀀스 같은걸로 update 하는 방식

감사합니다.

초심님이 2013-06-07 11:08에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40148Partition Table 사용시 속도 저하 문제 [1]
이철재
2013-05-29
6956
40147여러 row의 데이터를 구분자로 한줄로 뽑고 싶습니다... [4]
짱아
2013-05-29
9149
40146대형 프로젝트에서 DB 구조...
홍순우
2013-05-27
6523
40144유니크하고 랜덤한 일련번호 처리 [4]
초심
2013-05-24
7338
40143group by 절에 대한 질문이요 ㅜㅜ [4]
짱먹었어
2013-05-24
6775
40142마농님 한번만 더 부탁드려요 [2]
조기영
2013-05-23
6432
40141원인을 잘못찾겠습니다..조언부탁드립니다. [1]
새하정
2013-05-22
7042
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다