아시는 분은 아시리라 생각이 됩니다만 행여나 도움이 될까 해서 이렇게 몇 글자 적습니다.
우리 보통 일련번호를 만들 때면 max(일련번호)를 조회한 후 다음 쿼리를 시작하죠. 이 경우에는 두 번의 SQL 문장이 실행되었으므로 매우 비 효율적이라 할 수 있습니다.
그래서 이 단점을 보완한 것이 decode 문을 이용해서 한번에 처리하는 방법이 나왔습니다. 그러나 이 방법 역시 데이터가 적을 경우에는 상관이 없으나 대량의 데이터가 되면 상황은 완전히 달라지죠. 그 많은 데이터를 grouping 해야 하니까요.
그래서 채번 테이블이라는 것을 구성해서 일련번호가 일정 수준 이상까지는 증가하지 못하도록 구성을 하죠.
* PK 코드 + 구분 + 일련번호로 구성된 테이블이 있다고 하면 쿼리는 아래처럼 되겠죠.
select 최종일련번호 + 1
into :v_주문일련번호
from 주문
where 코드 = '001'
and 구분 = 'off line'
그 후에는 보통 본 테이블에 입력을 하는 쿼리가 오겠죠.
그러나 이것도 여러명의 사용자가 이용할 경우에는 중복에 문제가 있기 때문에 FOR UPDATE를 통한 Lock을 걸어주어야 하므로 결국 잠금으로 인한 부하가 발생할 수 있습니다.
그래서 최종적으로 도출된 것이 인덱스 역방향 정렬을 이용한 채번 방법이라는 것이 있습니다.
/* i_01: 인덱스명 */
insert into 주문(주문일련번호, col2, col3, ...)
select /*+ INDEX_DESC(B i_01) +*/
from 주문 A,
목록 B
where A.주문일련번호 = B.주문일련번호
and rownum = 1;
인덱스 역방향 정렬을 이용하여 ROWNUM = 1에 해당하는 데이터를 조회하였으므로 성능도 좋고, 잠금으로 인한 대기현상도 나타나지 않겠죠.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7530 | 10년 전 | 828 | ||
| 7529 |
파랑새1597
|
10년 전 | 1253 | |
| 7528 |
파랑새1597
|
10년 전 | 1336 | |
| 7527 |
integrity7
|
10년 전 | 1423 | |
| 7526 | 10년 전 | 2448 | ||
| 7525 |
다빈치코드777
|
10년 전 | 1127 | |
| 7524 | 10년 전 | 1596 | ||
| 7523 | 10년 전 | 986 | ||
| 7522 |
|
10년 전 | 1014 | |
| 7521 |
blackkil
|
10년 전 | 1899 | |
| 7520 | 10년 전 | 1316 | ||
| 7519 |
Gaumi
|
10년 전 | 1096 | |
| 7518 | 10년 전 | 1507 | ||
| 7517 | 10년 전 | 843 | ||
| 7516 | 10년 전 | 1315 | ||
| 7515 | 10년 전 | 1432 | ||
| 7514 |
|
10년 전 | 4501 | |
| 7513 |
멋진남자임
|
10년 전 | 1143 | |
| 7512 |
다빈치코드777
|
10년 전 | 901 | |
| 7511 |
|
10년 전 | 3420 | |
| 7510 | 10년 전 | 1386 | ||
| 7509 | 10년 전 | 1164 | ||
| 7508 | 10년 전 | 731 | ||
| 7507 |
senseme
|
10년 전 | 775 | |
| 7506 |
멋진남자임
|
10년 전 | 1668 | |
| 7505 | 10년 전 | 4050 | ||
| 7504 | 10년 전 | 2176 | ||
| 7503 | 10년 전 | 1010 | ||
| 7502 | 10년 전 | 535 | ||
| 7501 | 10년 전 | 1464 | ||
| 7500 | 10년 전 | 1511 | ||
| 7499 | 10년 전 | 3425 | ||
| 7498 | 10년 전 | 1266 | ||
| 7497 |
dethos79
|
10년 전 | 2986 | |
| 7496 | 10년 전 | 2210 | ||
| 7495 | 10년 전 | 930 | ||
| 7494 |
CHAVO
|
10년 전 | 1165 | |
| 7493 | 10년 전 | 2675 | ||
| 7492 | 10년 전 | 1308 | ||
| 7491 | 10년 전 | 1520 | ||
| 7490 | 10년 전 | 2366 | ||
| 7489 | 10년 전 | 2135 | ||
| 7488 |
toptopon
|
10년 전 | 918 | |
| 7487 |
|
10년 전 | 1062 | |
| 7486 | 10년 전 | 3379 | ||
| 7485 | 10년 전 | 1334 | ||
| 7484 | 10년 전 | 1388 | ||
| 7483 | 10년 전 | 1045 | ||
| 7482 | 10년 전 | 678 | ||
| 7481 | 10년 전 | 871 | ||
| 7480 | 10년 전 | 1253 | ||
| 7479 | 10년 전 | 2626 | ||
| 7478 | 10년 전 | 1192 | ||
| 7477 |
멋진남자임
|
10년 전 | 1538 | |
| 7476 |
zeppeto
|
10년 전 | 1151 | |
| 7475 |
200점아빠
|
10년 전 | 935 | |
| 7474 | 10년 전 | 4022 | ||
| 7473 | 10년 전 | 1011 | ||
| 7472 |
나르시스1
|
10년 전 | 1261 | |
| 7471 | 10년 전 | 890 | ||
| 7470 | 10년 전 | 1310 | ||
| 7469 |
플라이SINJI
|
10년 전 | 1021 | |
| 7468 |
|
10년 전 | 582 | |
| 7467 |
|
10년 전 | 706 | |
| 7466 | 10년 전 | 1153 | ||
| 7465 | 10년 전 | 1204 | ||
| 7464 |
|
10년 전 | 1219 | |
| 7463 | 10년 전 | 1281 | ||
| 7462 |
진짜별사탕
|
10년 전 | 882 | |
| 7461 | 10년 전 | 968 | ||
| 7460 | 10년 전 | 3766 | ||
| 7459 |
멋진남자임
|
10년 전 | 1580 | |
| 7458 |
멋진남자임
|
10년 전 | 510 | |
| 7457 | 10년 전 | 936 | ||
| 7456 | 11년 전 | 784 | ||
| 7455 | 11년 전 | 2197 | ||
| 7454 | 11년 전 | 646 | ||
| 7453 | 11년 전 | 857 | ||
| 7452 |
중국어사이트제작
|
11년 전 | 521 | |
| 7451 | 11년 전 | 928 | ||
| 7450 | 11년 전 | 649 | ||
| 7449 |
울라라라우
|
11년 전 | 968 | |
| 7448 | 11년 전 | 1642 | ||
| 7447 |
멋진남자임
|
11년 전 | 528 | |
| 7446 | 11년 전 | 576 | ||
| 7445 |
네이비칼라
|
11년 전 | 1712 | |
| 7444 |
senseme
|
11년 전 | 1428 | |
| 7443 | 11년 전 | 1358 | ||
| 7442 | 11년 전 | 751 | ||
| 7441 |
멋진남자임
|
11년 전 | 1462 | |
| 7440 | 11년 전 | 932 | ||
| 7439 |
|
11년 전 | 787 | |
| 7438 |
|
11년 전 | 957 | |
| 7437 |
basement
|
11년 전 | 1054 | |
| 7436 |
잘살아보자
|
11년 전 | 1148 | |
| 7435 | 11년 전 | 1108 | ||
| 7434 | 11년 전 | 3802 | ||
| 7433 |
|
11년 전 | 2778 | |
| 7432 |
alexkim
|
11년 전 | 883 | |
| 7431 |
이웃집초보
|
11년 전 | 1329 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기