아시는 분은 아시리라 생각이 됩니다만 행여나 도움이 될까 해서 이렇게 몇 글자 적습니다.
우리 보통 일련번호를 만들 때면 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에 해당하는 데이터를 조회하였으므로 성능도 좋고, 잠금으로 인한 대기현상도 나타나지 않겠죠.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2630 |
|
15년 전 | 818 | |
| 2629 | 15년 전 | 897 | ||
| 2628 | 15년 전 | 1089 | ||
| 2627 | 15년 전 | 1789 | ||
| 2626 |
angpang
|
15년 전 | 1103 | |
| 2625 |
|
15년 전 | 1198 | |
| 2624 | 15년 전 | 973 | ||
| 2623 | 15년 전 | 917 | ||
| 2622 | 15년 전 | 1289 | ||
| 2621 | 15년 전 | 1740 | ||
| 2620 | 15년 전 | 1020 | ||
| 2619 | 15년 전 | 1361 | ||
| 2618 |
terrorboys
|
15년 전 | 1625 | |
| 2617 |
mummy
|
15년 전 | 983 | |
| 2616 | 15년 전 | 907 | ||
| 2615 |
windday
|
15년 전 | 1062 | |
| 2614 | 15년 전 | 1122 | ||
| 2613 | 15년 전 | 936 | ||
| 2612 | 15년 전 | 1219 | ||
| 2611 | 15년 전 | 1289 | ||
| 2610 | 15년 전 | 1223 | ||
| 2609 | 15년 전 | 3139 | ||
| 2608 |
DiZiNOr
|
15년 전 | 825 | |
| 2607 | 15년 전 | 1368 | ||
| 2606 |
|
15년 전 | 942 | |
| 2605 | 15년 전 | 1762 | ||
| 2604 | 15년 전 | 723 | ||
| 2603 | 15년 전 | 882 | ||
| 2602 |
bitmaster
|
15년 전 | 901 | |
| 2601 | 15년 전 | 903 | ||
| 2600 | 15년 전 | 1645 | ||
| 2599 | 15년 전 | 2940 | ||
| 2598 | 15년 전 | 2024 | ||
| 2597 | 15년 전 | 1934 | ||
| 2596 | 15년 전 | 917 | ||
| 2595 | 15년 전 | 1022 | ||
| 2594 | 15년 전 | 966 | ||
| 2593 |
순천홈페이지
|
15년 전 | 862 | |
| 2592 | 15년 전 | 1148 | ||
| 2591 | 15년 전 | 844 | ||
| 2590 | 15년 전 | 1322 | ||
| 2589 |
dannykim
|
15년 전 | 746 | |
| 2588 |
dannykim
|
15년 전 | 652 | |
| 2587 | 15년 전 | 1532 | ||
| 2586 | 15년 전 | 796 | ||
| 2585 | 15년 전 | 1239 | ||
| 2584 | 15년 전 | 1103 | ||
| 2583 | 15년 전 | 787 | ||
| 2582 | 15년 전 | 807 | ||
| 2581 | 15년 전 | 717 | ||
| 2580 |
|
15년 전 | 694 | |
| 2579 | 15년 전 | 860 | ||
| 2578 | 15년 전 | 1119 | ||
| 2577 | 15년 전 | 2273 | ||
| 2576 |
확실한방법
|
15년 전 | 883 | |
| 2575 | 15년 전 | 973 | ||
| 2574 | 15년 전 | 997 | ||
| 2573 | 15년 전 | 995 | ||
| 2572 | 15년 전 | 1067 | ||
| 2571 |
|
15년 전 | 687 | |
| 2570 | 15년 전 | 1950 | ||
| 2569 |
|
15년 전 | 783 | |
| 2568 | 15년 전 | 1589 | ||
| 2567 | 15년 전 | 747 | ||
| 2566 |
dannykim
|
15년 전 | 759 | |
| 2565 | 15년 전 | 1423 | ||
| 2564 |
기획매니아
|
15년 전 | 1051 | |
| 2563 | 15년 전 | 1324 | ||
| 2562 | 15년 전 | 1623 | ||
| 2561 | 15년 전 | 1261 | ||
| 2560 | 15년 전 | 1348 | ||
| 2559 | 15년 전 | 718 | ||
| 2558 |
|
15년 전 | 2271 | |
| 2557 | 15년 전 | 1013 | ||
| 2556 | 15년 전 | 749 | ||
| 2555 | 15년 전 | 1093 | ||
| 2554 | 15년 전 | 797 | ||
| 2553 | 15년 전 | 2042 | ||
| 2552 | 15년 전 | 1080 | ||
| 2551 | 15년 전 | 909 | ||
| 2550 |
|
15년 전 | 997 | |
| 2549 | 15년 전 | 951 | ||
| 2548 |
|
15년 전 | 964 | |
| 2547 |
|
15년 전 | 1051 | |
| 2546 | 15년 전 | 547 | ||
| 2545 | 15년 전 | 477 | ||
| 2544 | 15년 전 | 442 | ||
| 2543 | 15년 전 | 1150 | ||
| 2542 |
|
15년 전 | 960 | |
| 2541 | 15년 전 | 807 | ||
| 2540 | 15년 전 | 801 | ||
| 2539 | 15년 전 | 1199 | ||
| 2538 | 15년 전 | 3198 | ||
| 2537 | 15년 전 | 1068 | ||
| 2536 |
|
15년 전 | 1869 | |
| 2535 | 15년 전 | 1145 | ||
| 2534 |
|
15년 전 | 964 | |
| 2533 | 15년 전 | 2603 | ||
| 2532 | 15년 전 | 1611 | ||
| 2531 |
|
15년 전 | 2505 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기