none
Anzeige Komprimierung RRS feed

  • Frage

  • Hallo,
    auf unserem System ist an einzelnen Indizees eine Komprimierung eingestellt worden (von einem ext. Berater).

    Mich würde interessieren, ob man sich diese im Management Studio anzeigen lassen kann bzw. ob es TSQL Befehle gibt, die mir anzeigen, ob eine Komprimierung auf dem Index (bzw. Tabelle) existiert.

    Ich frage, weil diese in der Vergangenheit schon mal versehentlich verschwunden sind (durch ein "Fremdsystem" :)).

    Danke im voraus!

    Gruß,
    Frank

    Donnerstag, 8. Februar 2018 13:58

Antworten

  • Hallo Frank,

    das kann man über sys.partitions (Transact-SQL) => data_compression ermitteln, ein vollständiges Skript dazu ist:

    SELECT SCH.name AS SchemaName
          ,OBJ.name AS ObjName
          ,OBJ.type_desc AS ObjType
          ,INDX.name AS IndexName
          ,INDX.type_desc AS IndexType
          ,PART.partition_number AS PartitionNumber
          ,PART.rows AS PartitionRows
          ,STAT.row_count AS StatRowCount
          ,STAT.used_page_count * 8 AS UsedSizeKB
          ,STAT.reserved_page_count * 8 AS RevervedSizeKB
          ,PART.data_compression_desc 
    FROM sys.partitions AS PART
         INNER JOIN sys.dm_db_partition_stats AS STAT
             ON PART.partition_id = STAT.partition_id
                AND PART.partition_number = STAT.partition_number
         INNER JOIN sys.objects AS OBJ
             ON STAT.object_id = OBJ.object_id
         INNER JOIN sys.schemas AS SCH
             ON OBJ.schema_id = SCH.schema_id
         INNER JOIN sys.indexes AS INDX
             ON STAT.object_id = INDX.object_id
                AND STAT.index_id = INDX.index_id
    ORDER BY SCH.name
            ,OBJ.name
            ,INDX.name
            ,PART.partition_number


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert F. Peters Donnerstag, 8. Februar 2018 15:07
    Donnerstag, 8. Februar 2018 14:52

Alle Antworten

  • Hallo Frank,

    das kann man über sys.partitions (Transact-SQL) => data_compression ermitteln, ein vollständiges Skript dazu ist:

    SELECT SCH.name AS SchemaName
          ,OBJ.name AS ObjName
          ,OBJ.type_desc AS ObjType
          ,INDX.name AS IndexName
          ,INDX.type_desc AS IndexType
          ,PART.partition_number AS PartitionNumber
          ,PART.rows AS PartitionRows
          ,STAT.row_count AS StatRowCount
          ,STAT.used_page_count * 8 AS UsedSizeKB
          ,STAT.reserved_page_count * 8 AS RevervedSizeKB
          ,PART.data_compression_desc 
    FROM sys.partitions AS PART
         INNER JOIN sys.dm_db_partition_stats AS STAT
             ON PART.partition_id = STAT.partition_id
                AND PART.partition_number = STAT.partition_number
         INNER JOIN sys.objects AS OBJ
             ON STAT.object_id = OBJ.object_id
         INNER JOIN sys.schemas AS SCH
             ON OBJ.schema_id = SCH.schema_id
         INNER JOIN sys.indexes AS INDX
             ON STAT.object_id = INDX.object_id
                AND STAT.index_id = INDX.index_id
    ORDER BY SCH.name
            ,OBJ.name
            ,INDX.name
            ,PART.partition_number


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert F. Peters Donnerstag, 8. Februar 2018 15:07
    Donnerstag, 8. Februar 2018 14:52
  • Hallo Olaf,
    vielen Dank :)

    Gruß,
    Frank

    Donnerstag, 8. Februar 2018 15:07