아시는 분은 아시리라 생각이 됩니다만 행여나 도움이 될까 해서 이렇게 몇 글자 적습니다.
우리 보통 일련번호를 만들 때면 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에 해당하는 데이터를 조회하였으므로 성능도 좋고, 잠금으로 인한 대기현상도 나타나지 않겠죠.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 1630 | 17년 전 | 2370 | ||
| 1629 | 17년 전 | 2838 | ||
| 1628 |
인스웨이브시스템즈
|
17년 전 | 4615 | |
| 1627 | 17년 전 | 2679 | ||
| 1626 |
silence
|
17년 전 | 1875 | |
| 1625 |
|
18년 전 | 3318 | |
| 1624 | 18년 전 | 3138 | ||
| 1623 | 18년 전 | 3863 | ||
| 1622 | 18년 전 | 2172 | ||
| 1621 | 18년 전 | 2353 | ||
| 1620 | 18년 전 | 10015 | ||
| 1619 | 18년 전 | 3503 | ||
| 1618 | 18년 전 | 3305 | ||
| 1617 | 18년 전 | 3190 | ||
| 1616 |
|
18년 전 | 2803 | |
| 1615 | 18년 전 | 4165 | ||
| 1614 |
에스카르고
|
18년 전 | 5506 | |
| 1613 | 18년 전 | 3742 | ||
| 1612 | 18년 전 | 3185 | ||
| 1611 | 18년 전 | 3607 | ||
| 1610 |
DHenny
|
18년 전 | 2264 | |
| 1609 | 18년 전 | 2688 | ||
| 1608 |
|
18년 전 | 3919 | |
| 1607 | 18년 전 | 2847 | ||
| 1606 |
|
18년 전 | 4363 | |
| 1605 | 18년 전 | 2081 | ||
| 1604 |
|
18년 전 | 2522 | |
| 1603 |
|
18년 전 | 2417 | |
| 1602 |
|
18년 전 | 3772 | |
| 1601 |
|
18년 전 | 3839 | |
| 1600 | 18년 전 | 2577 | ||
| 1599 | 18년 전 | 2645 | ||
| 1598 | 18년 전 | 2979 | ||
| 1597 |
|
18년 전 | 2803 | |
| 1596 |
|
18년 전 | 2012 | |
| 1595 |
|
18년 전 | 2183 | |
| 1594 | 18년 전 | 4835 | ||
| 1593 | 18년 전 | 4178 | ||
| 1592 | 18년 전 | 2804 | ||
| 1591 | 18년 전 | 2360 | ||
| 1590 | 18년 전 | 2867 | ||
| 1589 | 18년 전 | 2341 | ||
| 1588 |
|
18년 전 | 3504 | |
| 1587 | 18년 전 | 2172 | ||
| 1586 | 18년 전 | 1967 | ||
| 1585 | 18년 전 | 1823 | ||
| 1584 | 18년 전 | 1643 | ||
| 1583 | 18년 전 | 3239 | ||
| 1582 | 18년 전 | 4560 | ||
| 1581 | 18년 전 | 4841 | ||
| 1580 |
|
18년 전 | 2130 | |
| 1579 | 18년 전 | 3579 | ||
| 1578 | 18년 전 | 3305 | ||
| 1577 | 18년 전 | 4597 | ||
| 1576 | 18년 전 | 3239 | ||
| 1575 | 18년 전 | 4240 | ||
| 1574 |
개발전문가
|
18년 전 | 3922 | |
| 1573 |
mixdesign
|
18년 전 | 3621 | |
| 1572 |
mixdesign
|
18년 전 | 3017 | |
| 1571 |
mixdesign
|
18년 전 | 2908 | |
| 1570 | 18년 전 | 3482 | ||
| 1569 |
mixdesign
|
18년 전 | 2137 | |
| 1568 |
mixdesign
|
18년 전 | 2099 | |
| 1567 | 18년 전 | 5503 | ||
| 1566 |
mixdesign
|
18년 전 | 2677 | |
| 1565 |
mixdesign
|
18년 전 | 2428 | |
| 1564 | 18년 전 | 2738 | ||
| 1563 | 18년 전 | 2073 | ||
| 1562 | 18년 전 | 3069 | ||
| 1561 | 18년 전 | 10029 | ||
| 1560 |
행복속네잎크로버
|
18년 전 | 1920 | |
| 1559 | 18년 전 | 2834 | ||
| 1558 |
1111111
|
18년 전 | 2871 | |
| 1557 |
1111111
|
18년 전 | 2126 | |
| 1556 |
1111111
|
18년 전 | 2969 | |
| 1555 |
1111111
|
18년 전 | 3974 | |
| 1554 |
1111111
|
18년 전 | 2921 | |
| 1553 |
1111111
|
18년 전 | 2297 | |
| 1552 |
1111111
|
18년 전 | 6015 | |
| 1551 |
1111111
|
18년 전 | 3644 | |
| 1550 |
1111111
|
18년 전 | 6312 | |
| 1549 |
1111111
|
18년 전 | 2410 | |
| 1548 |
1111111
|
18년 전 | 2339 | |
| 1547 |
1111111
|
18년 전 | 2372 | |
| 1546 |
1111111
|
18년 전 | 3314 | |
| 1545 |
1111111
|
18년 전 | 3166 | |
| 1544 |
1111111
|
18년 전 | 1954 | |
| 1543 |
1111111
|
18년 전 | 3686 | |
| 1542 |
1111111
|
18년 전 | 1606 | |
| 1541 |
1111111
|
18년 전 | 1348 | |
| 1540 |
1111111
|
18년 전 | 1369 | |
| 1539 |
1111111
|
18년 전 | 1527 | |
| 1538 |
1111111
|
18년 전 | 1620 | |
| 1537 |
스카이부아
|
18년 전 | 3414 | |
| 1536 |
1111111
|
18년 전 | 2247 | |
| 1535 |
1111111
|
18년 전 | 1705 | |
| 1534 |
1111111
|
18년 전 | 2095 | |
| 1533 |
1111111
|
18년 전 | 4594 | |
| 1532 |
1111111
|
18년 전 | 2326 | |
| 1531 |
1111111
|
18년 전 | 2973 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기