You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询Azure Dedicated SQL Pool/Synapse中物化视图的存储大小(MB/GB)

各主流数据库查询物化视图列表及存储占用SQL语句

Oracle

适用Oracle 11g及以上版本,查询语句如下:

SELECT 
    owner AS 所属用户,
    mview_name AS 物化视图名称,
    ROUND((bytes / 1024 / 1024), 2) AS 占用空间_MB,
    CASE WHEN bytes >= 1024*1024*1024 THEN ROUND((bytes / 1024 / 1024 / 1024), 2) ELSE NULL END AS 占用空间_GB
FROM 
    dba_segments ds
JOIN 
    dba_mviews dm ON ds.segment_name = dm.mview_name AND ds.owner = dm.owner
WHERE 
    ds.segment_type = 'MATERIALIZED VIEW'
ORDER BY 
    bytes DESC;

如果是普通用户查询自己名下的物化视图,把dba_segments换成user_segments、dba_mviews换成user_mviews,去掉owner字段的筛选和展示即可。

PostgreSQL

适用PostgreSQL 9.3及以上版本,查询语句如下:

SELECT 
    schemaname AS 所属模式,
    matviewname AS 物化视图名称,
    ROUND((pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(matviewname)) / 1024.0 / 1024.0), 2) AS 占用空间_MB,
    CASE WHEN pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(matviewname)) >= 1024*1024*1024 THEN ROUND((pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(matviewname)) / 1024.0 / 1024.0 / 1024.0), 2) ELSE NULL END AS 占用空间_GB
FROM 
    pg_matviews
ORDER BY 
    pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(matviewname)) DESC;

pg_total_relation_size会统计物化视图本身+关联索引的总占用空间,如果只需要统计物化视图本身的大小,换成pg_relation_size即可。

MySQL 8.0+

MySQL从8.0版本开始支持物化视图,查询语句如下:

SELECT 
    TABLE_SCHEMA AS 所属数据库,
    TABLE_NAME AS 物化视图名称,
    ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS 占用空间_MB,
    CASE WHEN (DATA_LENGTH + INDEX_LENGTH) >= 1024*1024*1024 THEN ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 2) ELSE NULL END AS 占用空间_GB
FROM 
    information_schema.TABLES
WHERE 
    TABLE_TYPE = 'MATERIALIZED VIEW'
ORDER BY 
    (DATA_LENGTH + INDEX_LENGTH) DESC;

SQL Server

适用SQL Server 2016及以上版本,查询语句如下:

SELECT 
    s.name AS 所属模式,
    mv.name AS 物化视图名称,
    ROUND(SUM(p.reserved_page_count) * 8.0 / 1024, 2) AS 占用空间_MB,
    CASE WHEN SUM(p.reserved_page_count) * 8.0 >= 1024*1024 THEN ROUND(SUM(p.reserved_page_count) * 8.0 / 1024 / 1024, 2) ELSE NULL END AS 占用空间_GB
FROM 
    sys.views mv
JOIN 
    sys.schemas s ON mv.schema_id = s.schema_id
JOIN 
    sys.dm_db_partition_stats p ON mv.object_id = p.object_id
WHERE 
    mv.is_ms_shipped = 0
    AND EXISTS (SELECT 1 FROM sys.indexes i WHERE i.object_id = mv.object_id AND i.type = 1) -- 筛选已构建聚集索引的物化视图
GROUP BY 
    s.name, mv.name
ORDER BY 
    SUM(p.reserved_page_count) DESC;

内容的提问来源于stack exchange,提问作者question.it

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 08:09:03