Freigeben über


Anzeigen der Kapazitätsauslastung im Analyseplattformsystem

In diesem Artikel wird erläutert, wie Sie die Kapazitätsauslastung im SQL Server Parallel Data Warehouse (PDW)-Anwendung anzeigen.

So zeigen Sie die Kapazitätsauslastung mithilfe der Administratorkonsole an

Um den verwendeten Platz anzuzeigen, öffnen Sie die Admin-Konsole, und wählen Sie die Registerkarte "Speicher " aus. Es gibt eine Registerkarte "Speicher " für den PDW-Bereich.

Screenshot shows P D W Admin Console Storage page.

So zeigen Sie die Kapazitätsauslastung mithilfe von Abfragen an

Um zu verstehen, ob ein Knoten wenig Speicherplatz hat, überwacht das SQL Server PDW-Integritätsüberwachungssystem bereits den freien Speicherplatz für alle Volumes innerhalb jedes Knotens.

Wenn der freie Speicherplatz innerhalb eines Volumes unter 30 Prozent sinkt, generiert SQL Server PDW eine Warnung in sys.dm_pdw_component_health_active_alerts. Die Warnung wird erneut Standard, bis freier Speicherplatz zur Verfügung gestellt wird.

Wenn der freie Speicherplatz innerhalb eines Volumes unter 10 Prozent sinkt, generiert SQL Server PDW eine kritische Warnung. Diese Situation wird als kritisch betrachtet, da Abfragen fehlschlagen können, wenn sie dazu führen, dass die Datenbank erweitert wird.

Informationen zum Abrufen der Volumennutzung finden Sie im folgenden Beispiel.

SELECT   
    space.[pdw_node_id] ,  
    space.[node_name] ,  
    MAX(space.[volume_name]) AS 'volume_name' ,  
    MAX(space.[volume_size_mb]) AS 'volume_size_mb' ,  
    MAX(space.[free_space_mb]) AS 'free_space_mb' ,  
   (MAX(space.[volume_size_mb]) - MAX(space.[free_space_mb])) AS 'space_utilized'  
FROM (  
    SELECT   
        s.[pdw_node_id],  
        n.[name] AS [node_name],  
        (CASE WHEN p.property_name = 'volume_name'   
            THEN s.[property_value] ELSE NULL END) AS 'volume_name' ,  
        (CASE WHEN p.property_name = 'volume_size'   
            THEN (CAST(ISNULL(s.[property_value], '0') AS BIGINT)/1024/1024)   
            ELSE 0 END) AS 'volume_size_mb' ,  
        (CASE WHEN p.property_name = 'volume_free_space'   
            THEN (CAST(ISNULL(s.[property_value], '0') AS BIGINT)/1024/1024)   
            ELSE 0 END) AS 'free_space_mb' , s.[component_instance_id]  
    FROM [sys].[dm_pdw_component_health_status] AS s  
        JOIN sys.dm_pdw_nodes AS n   
            ON s.[pdw_node_id] = n.[pdw_node_id]  
        JOIN [sys].[pdw_health_components] AS c   
            ON s.[component_id] = c.[component_id]  
        JOIN [sys].[pdw_health_component_properties] AS p   
            ON s.[property_id] = p.[property_id] AND s.[component_id] = p.[component_id]  
    WHERE  
        c.[Component_name] = 'Volume'  
        AND p.[property_name] IN ('volume_name', 'volume_free_space', 'volume_size')  
    ) AS space  
GROUP BY space.[pdw_node_id] , space.[node_name] , space.[component_instance_id]  
ORDER BY space.[pdw_node_id], MAX(space.[volume_name]);  

Informationen zum Abrufen des von Datenbanken verwendeten Speicherplatzes über die Anwendung Knoten hinweg finden Sie im folgenden Beispiel.

SELECT   
    [pdw_node_id],   
    [db_name],   
    SUM(CASE WHEN [file_type] = 'DATA' THEN [value_MB] ELSE 0 END) AS [DataSizeMB],  
    SUM(CASE WHEN [file_type] = 'LOG' THEN [value_MB] ELSE 0 END) AS [LogSizeMB],  
    SUM([value_MB]) AS [TotalMB]  
FROM (  
    SELECT   
        pc.[pdw_node_id],   
        RTRIM(pc.[counter_name]) AS [counter_name],   
        ISNULL(d.[name], pc.[instance_name]) AS [db_name],   
        pc.[cntr_value]/1024 AS [value_MB],  
        CASE   
            WHEN [counter_name] LIKE 'Data File(s) Size%'   
            THEN 'DATA'   
            ELSE 'LOG'   
        END AS [file_type]  
    FROM sys.dm_pdw_nodes_os_performance_counters AS pc  
        LEFT JOIN sys.pdw_database_mappings AS dm   
            ON pc.instance_name = dm.physical_name  
        INNER JOIN sys.databases AS d   
            ON d.database_id = dm.database_id  
    WHERE   
        ([counter_name] LIKE 'Log File(s) Size%'  
             OR [counter_name] LIKE 'Data File(s) Size%')  
        AND (d.[name] <> dm.[physical_name]   
             OR pc.[instance_name] = 'tempdb')  
) AS db  
GROUP BY [pdw_node_id], [db_name]  
ORDER BY [db_name], [pdw_node_id];