oracle如何统计某张表当天的读写量
时间: 2023-05-31 14:07:14 浏览: 54
Oracle可以通过查询该表的数据库日志来统计当天的读写量。可以使用以下SQL语句来查询该表:
SELECT COUNT(*) FROM DBA_LOGMNR_CONTENTS WHERE SEG_OWNER = '表的所有者' AND TABLE_NAME = '表名' AND OPERATION = 'INSERT' AND TIMESTAMP >= TRUNC(SYSDATE);
其中,SEG_OWNER为表的所有者,TABLE_NAME为表名,OPERATION为操作类型,可以是INSERT、UPDATE、DELETE等,TIMESTAMP用于指定查询的时间范围,默认为当天的零点。
相关问题
oracle查看某张表存储过程触发器
要查看Oracle数据库中某张表的存储过程和触发器,可以使用以下SQL查询语句:
```sql
SELECT object_name, object_type
FROM user_objects
WHERE object_type IN ('PROCEDURE', 'TRIGGER')
AND object_name LIKE '%TABLE_NAME%';
```
将 `TABLE_NAME` 替换为你想要查询的表的名称即可。这将返回包含表名称的所有存储过程和触发器的名称和类型。
如果想要查看所有的存储过程和触发器代码,可以使用以下SQL查询语句:
```sql
SELECT text
FROM user_source
WHERE name = 'PROCEDURE_OR_TRIGGER_NAME'
ORDER BY line;
```
将 `PROCEDURE_OR_TRIGGER_NAME` 替换为你想要查看的存储过程或触发器的名称即可。这将返回该存储过程或触发器的完整代码。
oracle 查找某张表 某条数据的操作记录
你可以使用 Oracle 的 Flashback 查询功能来查找某张表某条数据的操作记录。Flashback 查询可以让你查询到过去某个时间点的数据状态。以下是一个示例 SQL 查询语句,可以查询表名为 `my_table` 中主键值为 `12345` 的记录在过去一小时内的所有操作记录:
```
SELECT versions_operation, versions_starttime, versions_endtime, versions_xid, versions_txd_time
FROM my_table
VERSIONS BETWEEN TIMESTAMP SYSDATE - INTERVAL '1' HOUR AND SYSDATE
WHERE id = 12345;
```
这个查询语句会返回操作类型(例如 INSERT、UPDATE 或 DELETE)、操作开始和结束时间、事务 ID 以及事务提交时间等信息。如果你需要查询更早的历史记录,可以调整 `VERSIONS BETWEEN` 子句中的时间范围。注意,Flashback 查询功能需要在数据库中启用 Flashback 数据库功能。