아시는 분은 아시리라 생각이 됩니다만 행여나 도움이 될까 해서 이렇게 몇 글자 적습니다.
우리 보통 일련번호를 만들 때면 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에 해당하는 데이터를 조회하였으므로 성능도 좋고, 잠금으로 인한 대기현상도 나타나지 않겠죠.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 1930 | 17년 전 | 3001 | ||
| 1929 | 17년 전 | 1878 | ||
| 1928 | 17년 전 | 3990 | ||
| 1927 | 17년 전 | 1408 | ||
| 1926 |
지엔소프트
|
17년 전 | 1124 | |
| 1925 |
보드타는찌니
|
17년 전 | 1241 | |
| 1924 |
choijinhee
|
17년 전 | 1126 | |
| 1923 | 17년 전 | 1387 | ||
| 1922 | 17년 전 | 1743 | ||
| 1921 | 17년 전 | 2337 | ||
| 1920 | 17년 전 | 2415 | ||
| 1919 | 17년 전 | 1418 | ||
| 1918 | 17년 전 | 1168 | ||
| 1917 | 17년 전 | 2435 | ||
| 1916 | 17년 전 | 2866 | ||
| 1915 |
|
17년 전 | 3229 | |
| 1914 | 17년 전 | 3171 | ||
| 1913 | 17년 전 | 2338 | ||
| 1912 | 17년 전 | 3751 | ||
| 1911 | 17년 전 | 3180 | ||
| 1910 | 17년 전 | 5503 | ||
| 1909 | 17년 전 | 2655 | ||
| 1908 | 17년 전 | 1856 | ||
| 1907 | 17년 전 | 1934 | ||
| 1906 | 17년 전 | 1774 | ||
| 1905 | 17년 전 | 1706 | ||
| 1904 | 17년 전 | 2765 | ||
| 1903 | 17년 전 | 1891 | ||
| 1902 | 17년 전 | 1579 | ||
| 1901 | 17년 전 | 2071 | ||
| 1900 |
stuartkim
|
17년 전 | 1137 | |
| 1899 | 17년 전 | 1665 | ||
| 1898 | 17년 전 | 2882 | ||
| 1897 | 17년 전 | 2124 | ||
| 1896 | 17년 전 | 1820 | ||
| 1895 | 17년 전 | 2035 | ||
| 1894 | 17년 전 | 1321 | ||
| 1893 | 17년 전 | 1714 | ||
| 1892 | 17년 전 | 1214 | ||
| 1891 | 17년 전 | 1776 | ||
| 1890 | 17년 전 | 1804 | ||
| 1889 | 17년 전 | 1039 | ||
| 1888 | 17년 전 | 3136 | ||
| 1887 | 17년 전 | 4313 | ||
| 1886 | 17년 전 | 2462 | ||
| 1885 | 17년 전 | 7471 | ||
| 1884 | 17년 전 | 3833 | ||
| 1883 | 17년 전 | 4164 | ||
| 1882 | 17년 전 | 2424 | ||
| 1881 | 17년 전 | 2885 | ||
| 1880 | 17년 전 | 3635 | ||
| 1879 | 17년 전 | 4004 | ||
| 1878 | 17년 전 | 3165 | ||
| 1877 | 17년 전 | 3146 | ||
| 1876 | 17년 전 | 3293 | ||
| 1875 | 17년 전 | 2462 | ||
| 1874 | 17년 전 | 2057 | ||
| 1873 | 17년 전 | 3107 | ||
| 1872 | 17년 전 | 3255 | ||
| 1871 | 17년 전 | 4609 | ||
| 1870 | 17년 전 | 1592 | ||
| 1869 | 17년 전 | 2615 | ||
| 1868 | 17년 전 | 2689 | ||
| 1867 | 17년 전 | 1899 | ||
| 1866 | 17년 전 | 2220 | ||
| 1865 | 17년 전 | 1834 | ||
| 1864 | 17년 전 | 2371 | ||
| 1863 | 17년 전 | 3775 | ||
| 1862 | 17년 전 | 3894 | ||
| 1861 | 17년 전 | 2078 | ||
| 1860 | 17년 전 | 1359 | ||
| 1859 | 17년 전 | 1495 | ||
| 1858 |
|
17년 전 | 1647 | |
| 1857 | 17년 전 | 1631 | ||
| 1856 |
보드타는찌니
|
17년 전 | 1395 | |
| 1855 | 17년 전 | 1543 | ||
| 1854 |
|
17년 전 | 1359 | |
| 1853 | 17년 전 | 1846 | ||
| 1852 | 17년 전 | 2749 | ||
| 1851 | 17년 전 | 1846 | ||
| 1850 |
|
17년 전 | 1403 | |
| 1849 |
|
17년 전 | 1689 | |
| 1848 |
|
17년 전 | 2328 | |
| 1847 | 17년 전 | 1941 | ||
| 1846 |
은사시나무
|
17년 전 | 1263 | |
| 1845 |
갈색야생마
|
17년 전 | 5903 | |
| 1844 |
갈색야생마
|
17년 전 | 3282 | |
| 1843 |
갈색야생마
|
17년 전 | 3178 | |
| 1842 |
갈색야생마
|
17년 전 | 2589 | |
| 1841 |
갈색야생마
|
17년 전 | 2769 | |
| 1840 |
갈색야생마
|
17년 전 | 2718 | |
| 1839 |
갈색야생마
|
17년 전 | 3224 | |
| 1838 |
갈색야생마
|
17년 전 | 2353 | |
| 1837 |
갈색야생마
|
17년 전 | 2471 | |
| 1836 |
갈색야생마
|
17년 전 | 2532 | |
| 1835 |
갈색야생마
|
17년 전 | 2522 | |
| 1834 |
갈색야생마
|
17년 전 | 2663 | |
| 1833 |
갈색야생마
|
17년 전 | 3186 | |
| 1832 |
갈색야생마
|
17년 전 | 2699 | |
| 1831 |
갈색야생마
|
17년 전 | 1425 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기