- 论坛徽章:
- 0
|
现象是这样的。
1、select * from dba_tablespaces where tablespace_name='TBS_RZQZUCAP_TRX';
user_bytes user_blocks
1072693248 130944
2、SELECT sum(bytes),sum(blocks) from dba_extents where tablespace_name='TBS_RZQZUCAP_TRX' order by block_id;
sum(bytes) sum(blocks)
1072693248 130944
3、select * from dba_free_space where tablespace_name='TBS_RZQZUCAP_TRX';
没有查到数据
由此可以判断'TBS_RZQZUCAP_TRX',确实已经满了。
我插入数据的方式有3种,
1、在sqlplus /
INSERT INTO PCSP_TRANSACTION_LOG_2 SELECT * FROM PCSP_TRANSACTION_LOG_1 WHERE system_serial='346059910075';
commit;
插入成功。查询表发现记录多了一条。
2、INSERT INTO PCSP_TRANSACTION_LOG_2 SELECT * FROM PCSP_TRANSACTION_LOG_1 WHERE system_serial>'346059910074' and system_serial<'346078010176';
ERROR at line 1:
ORA-01691: unable to extend lob segment OPS$RZQZRUN.SYS_LOB0000049539C00038$$
by 128 in tablespace TBS_RZQZUCAP_TRX
分析原因 我觉得因为现在的表空间已满,所以SYS_LOB0000049539C00038$$也已经满了。所以插入不成功。
但是总觉得怪怪的。还有表空间SYS_LOB0000049539C00038$$是做什么用的不太清楚,发现他的类型是lobindex。
3、程序中insert into PCSP_TRANSACTION_LOG_2 values();
这种模式也不行。
为什么3种情况不同,结果却不同,空间已满,但为什么还能插入。
还有一个问题。怎么样知道一个表已经使用的多少个块。?
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
指的是表按照表空间建立是默认的方式建立初始区大小,我想知道在数据不多(没有超过初始区大小)的情况下,实际数据到底占用了多少块或者byte
谢谢执教
[ 本帖最后由 lijuwen 于 2009-12-16 10:57 编辑 ] |
|