안녕하세요.
테이블에 걸린 인덱스가 여러개일 경우 Loading속도가
현저히 떨어지고 많은량의 로그가 남게 됩니다.
이경우 인덱스와 Constraint를 disable시키고 Loading을
하면 많은 속도의 향상을 얻을 수 있습니다.
set indexes,constraints for 테이블명 disabled;
load from aaa.unl insert into 테이블명;
set indexes,constraints for 테이블명 enabled;
와 같이 Loading을 하게되면 새로 색인을 하게 되고
트랜잭션도 둘로 나뉘어져 작아지게 됩니다.
만약 그래도 Long Tx로 된다면
dbload라는 툴을 사용하여 n개 단위로 row를 load할 수
있습니다. 사용법은 Migration Guide의 Using the dbload Utility를
참조하시기 바랍니다.
그럼.
>>권한철 님께서 쓰시길<<
:: db를 no logging mode로 바꾸는 것이 잘 안되는 건지? 아니면, 바꿔서는 안되는것지 묻고 싶네요.
::
:: 만약 바꾸는것이 잘 안된다면
::
:: INFORMIXDIR/etc/onconfig에서 확인
:: #TAPEDEV /dev/null # Tape device path
:: TAPEDEV /dev/rmt0 # Tape device path
::
:: informix engine을 내렸다 올린후
:: ontape -s -U database명 하면
:: mode가 바뀔겁니다.
::
:: 그렇지 않고 바꿔서는 안되는 경우라면,
:: 먼저 index나 key값을 table에서 날린후 하면 더 좋겠지요.
:: 그래도 안되면
:: file의 data를 잘게 여러개로 나누신후 차례대로 loading 하시면 됩니다.
::
:: 도움이 되시길
::
::
::
:: >>이재민 님께서 쓰시길<<
::
:: :: File로부터 Table로 data loading을 하는데 자꾸
:: :: Long transaction abort error가 발생합니다.
:: ::
:: :: Log file을 더 늘릴수는 없구요 database 자체를 No logging mode로 바꿀 수도 없거든요
:: :: Transaction 자체를 몇건마다 commit 처리하도록 하는 명령은 혹시 없나요
:: ::
:: :: 아니면 transaction 자체만 logging을 하지 않도록 하는 방법이 있으면 좀
:: :: 가르쳐주세요
|