写一个查询数据库表空间使用率的存过
时间: 2024-02-01 14:16:04 浏览: 102
查看表空间使用情况
下面是一个查询Oracle数据库表空间使用率的存储过程:
```sql
CREATE OR REPLACE PROCEDURE check_tablespace_usage
IS
v_tablespace_name VARCHAR2(30);
v_total NUMBER;
v_used NUMBER;
v_percent_used NUMBER;
BEGIN
FOR ts IN (SELECT tablespace_name
FROM dba_tablespaces)
LOOP
v_tablespace_name := ts.tablespace_name;
EXECUTE IMMEDIATE 'SELECT sum(bytes), sum(bytes-free_space) FROM dba_data_files WHERE tablespace_name = :ts_name' INTO v_total, v_used USING v_tablespace_name;
v_percent_used := ROUND((v_used / v_total) * 100, 2);
DBMS_OUTPUT.PUT_LINE(v_tablespace_name || ' used ' || v_percent_used || '%');
END LOOP;
END;
/
```
该存储过程遍历所有表空间,并计算每个表空间的使用率。执行此存储过程将在输出窗口中显示每个表空间的使用率。
阅读全文