ORA-03232 unable to allocate an extent of string blocks from tablespace string
Cause: An attempt was made to specify a HASH_MULTIBLOCK_IO_COUNT value
that is greater than the tablespace's NEXT value.
Action: Increase the value of NEXT for the tablespace using ALTER TABLESPACE
DEFAULT STORAGE or decrease the value of HASH_MULTIBLOCK_IO_COUNT.
안녕하세요...
위제목처럼 이런에러가 나네요...
sql을 올리지못해 죄송하고 내용은 data 100만건정도의 table을 조회하는데
defaul 옵티마이저는 choose 방식인데 제가 쓰고 있는 sql에서는 /*+ first_rows */
hint를 주어 사용만하면 위의 에러가 떨어집니다...
해당 table은 pn_data_30 이라는 tablespace를 쓰고 있는데 이 tablespace는
초기할당이 100m 이고 next도 100m 를 주었습니다...maxexntent는 50을 주었고
datafile의 크기는 5G를 주었습니다...
table은 초기할당을 100m 주었고 next는 5m 주었습니다...
위의 내용을보면 tablespace 의 next값을 늘리라고하는것같은데 next가 100M가나 되는데 이해가 안됩니다...
그리고 hash_multiblock_io_count 는 무슨역할을 의미하는지 자료를 찾아도 없어서리...
저의 시스템에는 이값이 0 으로 되어있는데 그것을 줄이라고 하는의미는 무엇인지...
여하튼 /+* first_rows */ 나 /*+ ordered */ 같은 옵티마이저나 힌트를 주면 이같은
03232 가떨어집니다...
기타 이 tablespace를 동일하게 쓰는 다른 (데이타가 적은) table 가지고 sql를 쓰면
안나는것 같은데 data가 조금많이있는 (10만것 에서 100만건사이) table들을 가지고select 를 하면 위와같은 에러가 발생합니다...
님들의 좋은답변바라며 질문이 너무애매했다면 용서해주세요...
항상건강하세요...
참고로 저희시스템은 win2000에 oracle8.1.7 입니다...
설마 oracle8.1.7 버그는 아니겠지요...
왜냐면 oracle8.1.6에서 그대로 쓰던 자료들인데 그때는 이런문제가 없없는데...
차이는 oracle8.1.6에서는 제가 temporary tablespace 임의로만들어 크게 잡아주었고 (초기 50m next 50m 전체크기는 1.5G)
8.1.7에서는 system에있는 temp tablespce를 쓰는데 초기가 64k next 가 64k 인데 전체크기는 1G입니다.
이것도 원인이될까요?
|