oracle 查看某个库各个表的大小
时间: 2024-10-18 08:24:36 浏览: 43
在Oracle数据库中,查看某个库(Schema)下的所有表及其大小,可以使用SQL命令`DBA_TABLESPACE_STATS`,它返回了每个表空间的信息,包括占用的空间。但是,直接通过此视图获取每个表的具体大小可能不够直观,因为这个统计信息通常不包含表数据本身,而是表空间级别的。
如果你想要查看单个表的数据大小,可以使用以下步骤:
1. 首先,确定你要查询的表名和表所在的用户(Schema)。例如,如果表名为`my_table`,属于`my_schema`用户,你可以这样表示:`MY_SCHEMA.MY_TABLE`。
2. 使用`DBMS_SPACE_MANAGER.GET_TABLE_SIZE`函数。这是一个PL/SQL函数,需要在SQL*Plus环境下执行。示例代码如下:
```sql
DECLARE
v_size NUMBER;
BEGIN
SELECT DBMS_SPACE_MANAGER.GET_TABLE_SIZE(user, schema_name, table_name) INTO v_size
FROM DUAL
WHERE user = 'MY_USER' AND schema_name = 'MY_SCHEMA' AND table_name = 'MY_TABLE';
DBMS_OUTPUT.PUT_LINE('Table size: ' || v_size);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error occurred: ' || SQLERRM);
END;
```
运行这段代码,会输出指定表的实际数据大小(单位通常是字节)。
阅读全文