1

次のクエリは、過去 7 日間のテーブルに対する論理読み取りの合計を出力します。

SELECT owner as schema, object_name AS table_name,
     sum(logical_reads_delta) AS total_logical_reads
FROM dba_hist_seg_stat a, dba_hist_seg_stat_obj b
WHERE     owner != 'SYS'
     and owner!= 'SYSTEM'
     AND a.obj# = b.obj#
     AND a.dataobj# = b.dataobj#
     AND object_type = 'TABLE'
GROUP BY owner, object_name
order by sum(logical_reads_delta) desc;

出力にない場合、論理読み取りはありません。

私は実際に、データベース内のすべてのテーブル (論理読み取りのないものも含む) を上記の出力と結合する方法を探しています。外部結合?

結果は、論理読み取りを持つすべてのテーブル (および null 値を持つテーブル) をリストする、データベースでの最近のアクティビティのリストになることを願っています。

これを行う方法のアイデア?

4

1 に答える 1

1

質問を誤解したかどうかはわかりませんが、この質問は問題を解決するのに役立ちますか?

クエリをDBA_TABLES(外部結合を使用して)リンクしているので、DBで使用可能なすべてのテーブルを取得して、最初に論理読み取りを行うテーブルを一覧表示できます。

SELECT t.owner AS schema_name,
       t.table_name,
       q.total_logical_reads
  FROM dba_tables t
  LEFT JOIN
      (SELECT b.owner AS schema,
              b.object_name AS table_name,
              SUM (a.logical_reads_delta) AS total_logical_reads
         FROM dba_hist_seg_stat a
         JOIN dba_hist_seg_stat_obj b USING (obj#, dataobj#)
        WHERE b.owner NOT IN ('SYS', 'SYSTEM')
          AND b.object_type = 'TABLE'
        GROUP BY b.owner, b.object_name) q
   ON (t.owner = q.schema AND t.table_name = q.table_name)
ORDER BY q.total_logical_reads DESC NULLS LAST;

鍬それは役立ちます...

于 2012-06-29T08:47:34.533 に答える