Automic Workload Automation

  • 1.  Größe eines Datenbank-Objektes in einem Tablespace

    Posted Dec 18, 2017 09:49 AM
    Sie fragen

         Wie können wir platzraubende Datenbank-Objekte in einem Tablespace finden?

    Und wir antworten …

    Dieses Skript zeigt die Größe eines Objektes in einem Tablespace an:

    col segment_name    format a30 hea OBJECTNAME
    col partition_name  format a30
    col tablespace_name format a30
    col bytes format 9,999,990.00 hea "USED (MB)"
    Select  segment_name
           ,partition_name
           ,segment_type objecttype
           ,tablespace_name
           ,nvl(bytes / 1024 / 1024, 0) bytes
           ,nvl(initial_extent, 0)  INITIALEXT
           ,nvl(next_extent, 0)     NEXTEXT
           ,nvl(extents, 0)         NUMEXTENTS
           ,nvl(max_extents, 0)     "MAXEXTENTS"
    from   user_segments
    order by 1,2
    ;


  • 2.  Größe eines Datenbank-Objektes in einem Tablespace

    Posted Dec 29, 2017 06:00 AM
    Gilt dieses statement nur für Oracle? Oder gibt es dazu auch eine MSSQL oder DB2 Variante?


  • 3.  Größe eines Datenbank-Objektes in einem Tablespace

    Posted Jan 02, 2018 02:30 AM

    Hmm, was genau ist hier mit " Größe eines Objektes" gemeint? Ich dachte zunächst an ein Objekt in der Automation Engine, es scheint aber eher ein „DB Objekt“ (table, index, etc.) zu sein.

    Etwas Beschreibung des Ergebnisses wäre sinnvoll.



  • 4.  Größe eines Datenbank-Objektes in einem Tablespace

    Posted Jan 02, 2018 03:43 AM
    Das Resultat sieht ca so aus:
    86u1axqjgp5v.pnghttps://us.v-cdn.net/5019921/uploads/editor/16/86u1axqjgp5v.png" width="1005">

    PARTITION_NAME: NULL bedeutet, dass es sich nicht um partitionierte Objekte handelt, sonst würde hier der Partitions-Name stehen.
    OBJECTTYPE: Handelt es sich um eine Tabelle, Index, Lobsegment, ...
    TABLESPACE_NAME: Der Name des Tablespaces in dem das Segment liegt
    BYTES: Größe des Segments, in diesem Fall in MB (da im Select ja durch 1024² dividiert wird)
    INITIALEXT: INITIAL_EXTENT, Größe in Bytes zur Erstellungs-Zeit der Tabelle
    NEXTEXT: Größe des nächsten Extents, sollte die Tabelle erweitert werden
    NUMEXTENTS: Wie viele Extents wurden bereits alloziert.
    MAXEXTENTS: Die maximal erlaubten Extents.

    D.h. im Beispiel oben wurde die AH-Tabelle 18 mal erweitert (18 Extents) und ist mit 3MB die größte.

    Oracle organisiert seinen Speicher durch Tablespaces. Ein Tablespace ist ein (großer) begrenzter Speicherbereich, in dem Benutzer Ihre Datenbankobjekte anlegen und bearbeiten können. Für jedes Datenbankobjekt (Tabelle, View, Index) reserviert Oracle einen eigenen Bereich in diesem Tablespace, ein sogenanntes Segment. Jedes Segment wiederum besteht aus einer Anzahl von Extents, großen Speicherblöcken, innerhalb derer sich die konkreten Datenbankaktivitäten abspielen. Die konkrete Größe eines Extents wird bei der Erzeugung des Tablespace festgelegt (http://www.sts.tu-harburg.de/teaching/docu/oracle/speicherverwaltung.html)

    Auch hier gibt es eine sehr gute Beschreibung (http://www.speicherverwaltung.datenbank-wissen.de/tablespace.htm)


  • 5.  Größe eines Datenbank-Objektes in einem Tablespace

    Posted Jan 05, 2018 12:21 PM
    Abfrage für den MS-SQLSERVER

    SELECT
    TableName, NumRows,
     reservedpages *8192/1024 as TotalSpace,
     pages * 8192/1024 as DataSpace,
     (usedpages-pages)*8192/1024 as IndexSpace,
     (reservedpages-usedpages)*8192/1024 as UnusedSpace
    FROM (SELECT
    t.[name] as tablename,
    avg([rows]) as NumRows,
    sum(total_pages) as reservedpages,
    sum(used_pages) as usedpages,
    sum(
    CASE
    When it.internal_type IN (202,204) Then 0
    When a.type < 1 Then a.used_pages
    When p.index_id < 2 Then a.data_pages
    Else 0
    END) as pages
    from sys.allocation_units as a Join sys.partitions as p on p.partition_id = a.container_id
    left join sys.internal_tables it on p.object_id = it.object_id
    JOIN sys.tables as t on p.object_id=t.object_id
    group by t.[name]) as subselect;


    Ich habe nur eine kleine Modifizierung vorgenommen (alle Tabellen sollen angezeigt werden nicht nur die MQ-Tabellen).