我不完全确定这是一个错误还是我做错了什么,但这里是:
我正在尝试从DBA_HIST_TBSPC_SPACE_USAGE
数据字典视图中提取历史表空间信息。文档说该snap_id
值是唯一的快照 ID。
但是,请考虑以下查询:
SELECT snap_id, tablespace_id, rtime, snap_qty
FROM
(
SELECT
a.*,
COUNT(*) OVER (PARTITION BY snap_id, tablespace_id) AS snap_qty
FROM dba_hist_tbspc_space_usage a
)
WHERE snap_qty > 1
ORDER BY snap_qty DESC, snap_id, tablespace_id, rtime
如果snap_id
是唯一的,我希望 nosnap_id
会包含给定的tablespace_id
多次。这个想法是“一个快照,每个表空间一个条目”。
但是,这不是我得到的结果:
SNAP_ID TABLESPACE_ID RTIME SNAP_QTY
---------- ------------- ------------------------- ----------
50874 8 12/04/2014 20:03:41 3
50874 8 12/04/2014 20:13:41 3
50874 8 12/04/2014 20:16:40 3
50295 51 11/28/2014 19:24:12 2
50295 51 11/28/2014 19:31:09 2
50494 33 11/30/2014 21:06:49 2
50494 33 11/30/2014 21:16:41 2
50609 12 12/02/2014 01:48:26 2
50609 12 12/02/2014 02:01:01 2
50643 30 12/02/2014 10:28:54 2
50643 30 12/02/2014 10:31:30 2
50684 25 12/02/2014 20:39:33 2
50684 25 12/02/2014 20:46:07 2
...
这是一个错误吗?这是预期的行为吗?(我应该提交错误报告吗?)
编辑:这似乎并没有发生在我们所有的服务器上,只有一小部分发生。但是,它发生在 Oracle 12 和 Oracle 11 上。