wrh$_active_session_history清理
时间: 2023-07-29 19:07:32 浏览: 119
wrh$_active_session_history是Oracle数据库中的一个表,用于记录当前正在执行的会话的信息。如果这个表的数据过多,可能会导致数据库性能下降,因此需要定期清理。可以使用以下语句清理wrh$_active_session_history表中的数据:
```
exec DBMS_WORKLOAD_REPOSITORY.DROP_WRH$_ACTIVE_SESSION_HISTORY(SYSDATE-7);
```
上述语句将删除wrh$_active_session_history表中一周前的数据。你可以根据实际情况调整清理的时间范围。
相关问题
如何清理WRH$_ACTIVE_SESSION_HISTORY
WRH$_ACTIVE_SESSION_HISTORY 是 Oracle 数据库中的一个性能监控表。如果需要清理这个表中的数据,可以使用以下步骤:
1. 首先,确认该表中的数据是否过期,可以通过查询该表中最后一个采集时间(LAST_SAMPLE_TIME)来判断。如果数据已经过期,可以考虑清理。
2. 使用以下语句清理 WRH$_ACTIVE_SESSION_HISTORY:
```
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 0);
```
这个语句会暂停自动快照的采集,以便清理该表中的数据。
3. 使用以下语句清空 WRH$_ACTIVE_SESSION_HISTORY:
```
DELETE FROM wrh$_active_session_history;
```
4. 最后,重新启用自动快照的采集:
```
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 15);
```
这个语句会将自动快照的采集间隔设置为 15 分钟,可以根据实际需要进行调整。
truncate table WRH$_ACTIVE_SESSION_HISTORY 后,重建WRH$_ACTIVE_SESSION_HISTORY 的索引
在执行 `truncate table WRH$_ACTIVE_SESSION_HISTORY` 后,您可以按照以下步骤重建 `WRH$_ACTIVE_SESSION_HISTORY` 的索引:
1. 确保您有相应的权限来重新创建索引。
2. 确定需要重新创建的索引的名称。
3. 使用以下语法重新创建索引:
```sql
ALTER INDEX index_name REBUILD;
```
其中,`index_name` 是要重新创建的索引的名称。
4. 如果您不知道索引的确切名称,可以使用以下语句查询表中的索引列表:
```sql
SELECT index_name
FROM all_indexes
WHERE table_name = 'WRH$_ACTIVE_SESSION_HISTORY';
```
5. 根据查询结果选择要重新创建的索引名称,并使用步骤 3 中的语法重新创建它。
阅读全文