oracle dba_segments
时间: 2023-07-21 07:54:08 浏览: 236
dba_segments是Oracle数据库中的一个系统视图,它用于显示数据库中的所有段的信息,包括表、索引、分区、LOB和回滚段等。该视图提供了有关每个段的大小、占用空间、块数、块使用率等详细信息。这些信息对于数据库管理员进行性能调整和空间管理非常有用。可以使用SQL语句查询dba_segments视图来获取所需的信息。例如,查询所有表的大小和块数可以使用以下语句:SELECT owner, segment_name, bytes/1024/1024 MB, blocks FROM dba_segments WHERE segment_type='TABLE';
相关问题
SELECT tablespace_name FROM dba_tablespaces WHERE OWNER='ospbiuser';报错"OWNER": 标识符无效
如果在执行 `SELECT tablespace_name FROM dba_tablespaces WHERE OWNER='ospbiuser';` 查询语句时出现 "OWNER": 标识符无效 错误,可能是因为 `dba_tablespaces` 视图中并不包含 OWNER 列。
在 Oracle 数据库中,每个视图都有自己的列,如果在视图中查询了不存在的列,就会出现 "标识符无效" 错误。因此,可以尝试使用其他列过滤出需要的信息,例如可以使用表空间的名称来过滤:
```
SELECT tablespace_name
FROM dba_tablespaces
WHERE tablespace_name IN (
SELECT tablespace_name
FROM dba_segments
WHERE owner = 'ospbiuser'
);
```
这个 SQL 语句先查询了 `dba_segments` 视图,过滤出所有属于 `ospbiuser` 用户的段(包括表、索引等),然后再根据这些段所在的表空间名称查询 `dba_tablespaces` 视图,获取所有相关的表空间信息。需要注意的是,执行该查询需要具有访问 `dba_segments` 视图和 `dba_tablespaces` 视图的权限。
阅读全文