Temp Tablespace Usage

Der temporäre Tablespace wächst an bzw. wird immer voller.
In einer konsolidierten Umgebung stellt sich dann gerne mal die Fragen:

  • Wer ist der Verursacher?
  • Wer benötigt wieviel temporären Tablespace?

Die Antwort liefert die folgende Abfrage:

SELECT
  tmp.username,
  TRUNC(
    SUM(tmp.blocks) * (
      SELECT
        tbs.block_size
      FROM
        dba_tablespaces tbs
        JOIN dba_users usr ON usr.temporary_tablespace = tbs.tablespace_name
      WHERE
        usr.username = tmp.username
    ) / 1024 / 1024
  ) AS temp_usage_size_mb
FROM
  v$tempseg_usage tmp
GROUP BY
  tmp.username
ORDER BY 
  temp_usage_size_mb DESC;