如果你要表当前的容量, 那时很容易的, 用
SELECT NUM_ROWS, BLOCKS FROM USER_TABLE WHERE TABLE_NAME = MYTABLE就能得到表的纪录数和所占的当前块数, 乘上每个块的字节数, 就能得到当前表的大小了.
如果你要比较表在插入数据是容量的变化(我想应该是调试优化工作吧), 你不如建一个表, 如这样:
CREATE TABLE TABLE_SIZE_LOG (
TABLE_NAME VARCHAR2(30),
NUM_ROWS NUMBER,
LOG_TIME DATE,
BLOCKS NUMBER)
每次操作纪录后把当时的纪录数和BLOCK数LOG到这个表中, 就能进行比较了
SELECT NUM_ROWS, BLOCKS FROM USER_TABLE WHERE TABLE_NAME = MYTABLE就能得到表的纪录数和所占的当前块数, 乘上每个块的字节数, 就能得到当前表的大小了.
如果你要比较表在插入数据是容量的变化(我想应该是调试优化工作吧), 你不如建一个表, 如这样:
CREATE TABLE TABLE_SIZE_LOG (
TABLE_NAME VARCHAR2(30),
NUM_ROWS NUMBER,
LOG_TIME DATE,
BLOCKS NUMBER)
每次操作纪录后把当时的纪录数和BLOCK数LOG到这个表中, 就能进行比较了
blocks 只能是分配给这张表的总块数,并不能得出当前表的大小。
还有,,NUMS,BLOCKS在ORACLE 下根本查不出数据,,,
不过,,还是要谢谢你。。