Oracle查看表大小的有效方法(oracle 查看表的大小)
Oracle数据库查看表大小有一些不同的有效方法,最常见的是查看表空间 (或表空间的segments) 或使用数据泵的方法。
一,查看表空间大小
首先,查看表空间大小可以从数据库视图 v$tablespace 中获得,因此,我们可以执行以下 sql 语句:
SELECT TABLESPACE_NAME,BYTES/1024/1024/1024 FROM V$TABLESPACE;
该语句显示表空间的大小,最后一列显示的是 GB,执行这条查询以后,我们可以得到每个表空间的大小如下:
![](https://mmbiz.qpic.cn/mmbiz_png/ibvUtyDMfCSCthDbpIW7yibiaPEvFazVzUZ9XbdVTcb7ibgLicYJpnsrU3T6UuVboia8T6ibuMm2z2icL1mZ8flaHSBUOQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1)
观察这些数据,我们可以得知每个表空间的大小,从而能够了解数据表的大小约为多少 GB。
二,查看数据表Segment大小
除了上述方法以外,也可以使用我们在 Oracle 中常用的视图来查看每个表的segment大小,示例如下:
SELECT SEGMENT_NAME,BYTES/1024/1024/1024 FROM DBA_SEGMENTS WHERE SEGMENT_NAME like 'TEST_TABLE%';
查询后将会显示 TEST_TABLE 归属表空间中的分段大小,同样,最后一列单位为 GB:
![](https://mmbiz.qpic.cn/mmbiz_png/ibvUtyDMfCSCthDbpIW7yibiaPEvFazVzUm4n7FzllkB926DhrhEJYnHbGR5wahtpPyxasF326Lib5hEfBjPIibMCX69Q/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1)
执行这条查询,我们就可以得到TEST_TABLE的段的大小,这可以给我们一个更精确的表大小估计。
三,使用数据泵查看表大小
另一种有效的查看 Oracle 数据表大小的方法是使用数据泵,我们只需要执行一句比较简单的指令即可:
impdp system/oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=TEST_TABLE.DMP TABLE_EXISTS_ACTION=TRUNCATE
看到上面这条指令,你可能会想到我们在Oracle中使用expdp和impdp可以非常方便的把一些表数据导出和导入,但是,这一次我们不是要导入和导出数据,我们只是用它来查看表的大小,因此,我们在指令的最后一行将TABLE_EXISTS_ACTION设置为TRUNCATE,该指令会输出表实际大小的报告,例如:
![](https://mmbiz.qpic.cn/mmbiz_png/ibvUtyDMfCSCthDbpIW7yibiaPEvFazVzU623GKjiah9ibzSmASiaicQ56cALicLQ2OiaM4wK4FG3qOAwcuaXgXmKjzibA/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1)
可以看到,数据泵报告中表示出来的将是实际大小,而不会受到碎片影响,是一个比较实时的表大小信息。
结论
以上就是在Oracle中查看表大小的几种有效的方法,从各种角度给出了不同的参考数据,能够比较准确的查看表大小。