ora -03232 問題解決

myhuaer發表於2005-09-22
今天在執行一個大SQL 時,系統報
ORA-03232: unable to allocate an extent of blocks from tablespace 3 錯誤
select * from v$tablespace where ts#=3
結果是temp tablespace 不能擴充套件。
檢查alterlog 沒有任何錯誤資訊--- 這點沒有想通 :(
一般解決方法有兩種:
1: 增加Temp 表空間 ---此法不行
我的 temp 表空間 2G 現在只使用 280M,顯然不是Temp tablespace 小的緣故
2: 修改 hash_multiblock_io_count=1
(oracle default =1)
經檢查我的 hash_multiblock_io_count =8 .
HASH_MULTIBLOCK_IO_COUNT = integer
specifies the number of data blocks to read and write during a hash join operation. The value
multiplied by the DB_BLOCK_SIZE initialization parameter should not exceed 64 K. The default value for this parameter is 1. If the multi-threaded server is used, the value is always 1, and any value specified here is ignored.
如果使用多執行緒Server, 根據上面的解釋除過 1 的任何值都是忽略的,所以我們設定的8 也沒有什麼意義。故知需要修改為 1。問題就解決了。
[@more@]

03232, 00000, "unable to allocate an extent of %s blocks from tablespace %s"
// *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.

兩種解決方法:

1:減少 HASH_MULTIBLOCK_IO_COUNT

2: 增加temp tablespace 的next values

ALTER TABLESPACE "TEMP" DEFAULT STORAGE ( NEXT XXXK )

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/34596/viewspace-806899/,如需轉載,請註明出處,否則將追究法律責任。

相關文章