재귀함수
- 함수의 시작점이 다시 돌아가 자기 자신을 호출하는 것
재귀함수의 종류
- 전위 운행
- 중위 운행
- 후위 운행
- 단계 운행
예제 - Factorial
호출 구조
스택(Stack)
- 프로그램을 실행하는 데 필요한 공간
스택 프레임(Stack Frame)
- 하나의 메서드를 호출하는데 필요한 메모리
- 메서드 하나당 하나의 스택 프레임이 필요
플랫폼별 스택 크기
Windows IA32 - 64 KB
Windows IA64 - 320 KB
Linux IA32 - 128KB
Linux IA64 - 1024KB (1MB)
Windows x86_x64 - 128KB
Linux x86_x64 - 256 KB
Solaris Sparc - 512KB
스택 크기 조정 옵션
- Format : -Xss<size>[g|G|m|M|k|K]
- java -Xss512k myAPP
# Andorid Stack 크기 : 8KB / 256KB(MAX)
꼬리재귀
- 재귀함수에서 호출된 함수가 리턴 될 때 원래 자리로 돌아와야 하는 이유는 호출한 부분 다름에 다른 내용이 포함되어 있으면 그 내용을 계속 처리하기 위해서이다.
- 원래 위치로 돌아 갔을 때 할 일이 남아 있지 않기에 함수가 호출된 위치를 기억해 둘 필요 없음.
Partition Table 에 대해서 Split 하는 방법
상황
- RANGE Partition Table에서 2015년 03월 Partition을 생성하지 않고 2015년도 Partition을 생성한 경우
1. Split 할 Partition에 대해서 건수 확인
SELECT COUNT(1) AS CNT
FROM [OWN].[TAB] PARTITION(P201504);
2. [Split이전] Partition 에 대한 정보 확인
SELECT TABLE_OWNER,
TABLE_NAME,
PARTITION_NAME,
TABLESPACE_NAME,
HIGH_VALUE
FROM DBA_TAB_PARTITIONS
WHERE TABLE_NAME = '[TAB]';
3. Split Partition
ALTER TABLE [OWN].[TAB]
SPLIT PARTITION P201504 AT ('20150399999999')
INTO (PARTITION P201503, PARTITION P201504_02);
4. Partition Name 변경
ALTER TABLE [OWN].[TAB]
RENAME PARTITION P201504_02
TO P201504;
5. [Split이후]Partition 에 대한 정보 확인
SELECT TABLE_OWNER,
TABLE_NAME,
PARTITION_NAME,
TABLESPACE_NAME,
HIGH_VALUE
FROM DBA_TAB_PARTITIONS
WHERE TABLE_NAME = '[TAB]';
6. Split한 Partition 에 대해 연결된 Local Index Rename
ALTER INDEX [OWN].[TAB]_PK
RENAME PARTITION P201504_2 TO P201504;
ALTER INDEX [OWN].[TAB]_IX01
RENAME PARTITION P201504_2 TO P201504;
7. UNUSABLE Index에 대해서 Rebuild
ALTER INDEX [OWN].[TAB]_PK
REBUILD PARTITION P201503 ONLINE;
ALTER INDEX [OWN].[TAB]_PK
REBUILD PARTITION P201504 ONLINE;
ALTER INDEX [OWN].[TAB]_IX01
REBUILD PARTITION P201503 ONLINE;
ALTER INDEX [OWN].[TAB]_IX01
REBUILD PARTITION P201504 ONLINE;
8. Split이후 Partition에 대해서 건수 확인
SELECT COUNT(1) AS CNT
FROM [OWN].[TAB] PARTITION(P201503);
'02.IT Stroy > 022.Database' 카테고리의 다른 글
[Oracle] 11g Parameter (0) | 2014.11.28 |
---|---|
[Oracle 공식입장] DB 형상 변경과 업무의 상관관계 (0) | 2013.07.10 |
timestamp로 엑셀에서 치환하기
=(((A1/60)/60)/24) + DATE(1970,1,1) + (9/24)
마지막 (9/24)는 GMT + 값