全部产品
Search
文档中心

数据库自治服务 DAS:GetStorageAnalysisResult - 获取空间分析任务的结果

更新时间:Aug 27, 2026

调用GetStorageAnalysisResult接口,查询空间分析任务状态和分析结果。

接口说明

说明

物理文件大小获取的是文件真实大小(需实例部署形态支持);表级别其他数据基于information_schema.tables。由于 MySQL 中统计信息不是实时更新,所以可能和物理文件大小存在差异,如有需要获取最新数据,可在业务低峰时期对相关的表执行ANALYZE TABLE

  • 本接口只适用于 RDS MySQL、PolarDB MySQL 版和 MongoDB 实例。

  • 对于 RDS MySQL 和 PolarDB MySQL 版实例,本接口对应于旧版空间分析功能,该接口生成的任务无法在 DAS 控制台新版空间分析页面查看。如有需要查看任务及结果,请调用接口后自行保存数据。

  • 使用阿里云或 DAS 的 SDK 时,建议使用最新版本。

  • 在使用 SDK 调用 DAS 服务时,需要将地域指定为 cn-shanghai。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

hdm:GetStorageAnalysisResult

none

*全部资源

*

请求参数

名称

类型

必填

描述

示例值

InstanceId

string

实例 ID。

rm-2ze1jdv45i7l6****

NodeId

string

节点 ID。

说明

预留参数。

None

TaskId

string

任务 ID,调用 CreateStorageAnalysisTask 接口返回的任务 ID。

910f83f4b96df0524ddc5749f615****

返回参数

名称

类型

描述

示例值

object

Code

integer

返回的状态码。

200

Message

string

请求返回消息。

说明

请求成功时该参数返回 Successful,请求失败时会返回请求异常信息(如错误码等)。

Successful

Data

object

返回的数据。

TaskId

string

任务 ID。

910f83f4b96df0524ddc5749f615****

TaskFinish

boolean

任务是否结束:

  • true:任务结束。

  • false:任务未结束。

true

TaskSuccess

boolean

任务是否成功:

  • true:执行成功。

  • false:执行失败。

说明

当任务结束时才返回该字段。

true

TaskState

string

空间分析任务的状态:

  • INIT:初始化。

  • PENDING:等待执行。

  • RECEIVED:任务已选择。

  • RUNNING:任务执行中。

  • RETRY:重试任务。

  • SUCCESS:任务成功。

  • FAILURE:任务失败。

SUCCESS

TaskProgress

integer

任务进度,取值为 0~100 的整数。

说明

例如取值为 100 时,表示任务进度 100%。

100

TotalDbCount

integer

空间分析任务需要分析的数据库数量。

32

AnalyzedDbCount

integer

已分析结束的数据库数量。

2

StorageAnalysisResult

object

空间分析详情。

TotalStorageSize

integer

实例总空间大小,单位为 Byte。

说明

当前仅支持 RDS MySQL。

214748364800

TotalUsedStorageSize

integer

已使用的空间,单位为 Byte。

68345135104

TotalFreeStorageSize

integer

剩余可用空间,单位为 Byte。

说明

当前仅支持 RDS MySQL。

146403229696

DailyIncrement

integer

近一周空间日均增长量估算值,单位为 Byte。

0

EstimateAvailableDays

integer

剩余空间可使用天数估算值。

99

AnalysisSuccess

boolean

数据库和表空间分析是否成功。

  • true:成功。

  • false:失败。

true

AnalysisErrorType

string

数据库和表空间分析任务失败类型:

  • DB_OR_TABLE_NOT_EXIST:指定的数据库或表不存在。

  • DB_NOT_EXIST:指定的数据库不存在。

DB_NOT_EXIST

NeedOptimizeItemList

array<object>

根据 DAS 默认规则生成的待优化项列表。用户也可根据自身业务情况忽略该列表中的内容,然后根据接口返回的其他基础数据自定义规则生成待优化项列表。

object

DbName

string

数据库名。

testdb01

TableName

string

表名。

test_table

OptimizeItemName

string

待优化项:

  • NEED_ANALYZE_TABLEinformation_schema.tables中该表空间统计数据和物理文件大小差值超过 50 GB。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • NEED_OPTIMIZE_TABLE:表的碎片空间大于 6 GB,并且碎片率大于 30%。表的碎片率计算方式:
    • RDS MySQL 和 PolarDB MySQL 版为:DataFree/(DataSize+IndexSize+DataFree),本接口中即DataFree/PhyTotalSize

    • MongoDB 为:FragmentSize/PhyTotalSize

  • TABLE_ENGINE:表使用的存储引擎不是 InnoDB 或者 XEngine。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • AUTO_INCREMENT_ID_BE_TO_RUN_OUT:表自增 ID 使用率超过 80%。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • DUPLICATE_INDEX:索引冗余或者重复。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • TABLE_SIZE:单表空间大于 50 GB。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • TABLE_ROWS_AND_AVG_ROW_LENGTH:单表行数大于 500 万,且平均行长大于 10 KB。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • TOTAL_DATA_FREE:实例可回收空间大于 60 GB,且总碎片率大于 5%。

  • STORAGE_USED_PERCENT:实例空间使用率大于 90%。

NEED_OPTIMIZE_TABLE

OptimizeAdvice

string

优化建议:

  • NEED_ANALYZE_TABLE:如有需要可在业务低峰时期对相关的表执行ANALYZE TABLE。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • NEED_OPTIMIZE_TABLE:如有需要可在业务低峰时期进行表空间碎片回收。

  • CHANGE_TABLE_ENGINE_IF_NECESSARY:如果有需要可以在评估风险后更改表的存储引擎类型。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • AUTO_INCREMENT_ID_BE_TO_RUN_OUT:注意自增 ID 使用情况。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • DUPLICATE_INDEX:建议优化精简表上的索引。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • TABLE_SIZE:注意表大小。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • TABLE_ROWS_AND_AVG_ROW_LENGTH:注意表行数以及平均行长。仅适用于 RDS MySQL 和 PolarDB MySQL 版。

  • STORAGE_USED_PERCENT:注意空间使用情况,避免实例写满后锁定。

NEED_OPTIMIZE_TABLE

AssociatedData

string

待优化项关联数据,以 JSON 格式返回。

{ "autoIncrementCurrentValue": 2147483647, "autoIncrementRatio": 1, "dbName": "testdb01", "maximumValue": 2147483647, "columnName": "id", "tableName": "test_table" }

TableStats

array<object>

表空间数据列表。

object

DbName

string

数据库名。

testdb01

TableName

string

表名。

test_table

TableType

string

表类型。

说明

该参数适用于 RDS MySQL 和 PolarDB MySQL 版。

BASE TABLE

Engine

string

表使用的存储引擎类型。

说明

该参数适用于 RDS MySQL 和 PolarDB MySQL 版。

InnoDB

PhysicalFileSize

integer

表物理文件大小,单位为 Byte。

说明

该参数适用于 RDS MySQL 和 PolarDB MySQL 版。部分实例因部署形态的原因不支持获取该数据。

3057655808

PhyTotalSize

integer

表空间大小,单位为 Byte。

说明

对于 RDS MySQL 和 PolarDB MySQL 版,取值为 DataSizeIndexSizeDataFree 之和;对于 MongoDB,取值为 DataSizeIndexSize 之和。

3012493312

TotalSize

integer

  • 对于 RDS MySQL 和 PolarDB MySQL 版,该参数是表数据和索引占用空间大小,单位为 Byte。取值为 DataSizeIndexSize 之和。

  • 对于 MongoDB,该参数是 Block Manager 实际分配的空间大小,单位为 Byte。MongoDB 实例压缩率计算方式为:TotalSize/DataSize

3005153280

IndexSize

integer

索引占用的空间大小,单位为 Byte。

1022296064

DataSize

integer

  • 对于 RDS MySQL 和 PolarDB MySQL 版,该参数是数据占用的空间大小,单位为 Byte。

  • 对于 MongoDB,该参数是未压缩数据的大小,即数据量,单位为 Byte。

1982857216

DataFree

integer

碎片空间大小,单位为 Byte。

说明

该参数适用于 RDS MySQL 和 PolarDB MySQL 版。表碎片率计算方式一般为:DataFree/(DataSize+IndexSize+DataFree),本接口中即DataFree/PhyTotalSize

7340032

TableRows

integer

表行数。

12794732

AvgRowLength

integer

平均行长,单位为 Byte。

154

FragmentSize

integer

可回收空间大小(碎片空间大小),单位为 Byte。

说明

该参数仅适用于 MongoDB 实例。表碎片率计算方式为:FragmentSize/PhyTotalSize

362221568

RequestId

string

请求 ID。

B6D17591-B48B-4D31-9CD6-9B9796B2****

Success

boolean

请求是否执行成功:

  • true:执行成功。

  • false:执行失败。

true

示例

正常返回示例

JSON格式

{
  "Code": 200,
  "Message": "Successful",
  "Data": {
    "TaskId": "910f83f4b96df0524ddc5749f615****",
    "TaskFinish": true,
    "TaskSuccess": true,
    "TaskState": "SUCCESS",
    "TaskProgress": 100,
    "TotalDbCount": 32,
    "AnalyzedDbCount": 2,
    "StorageAnalysisResult": {
      "TotalStorageSize": 214748364800,
      "TotalUsedStorageSize": 68345135104,
      "TotalFreeStorageSize": 146403229696,
      "DailyIncrement": 0,
      "EstimateAvailableDays": 99,
      "AnalysisSuccess": true,
      "AnalysisErrorType": "DB_NOT_EXIST",
      "NeedOptimizeItemList": [
        {
          "DbName": "testdb01",
          "TableName": "test_table",
          "OptimizeItemName": "NEED_OPTIMIZE_TABLE",
          "OptimizeAdvice": "NEED_OPTIMIZE_TABLE",
          "AssociatedData": "{\n    \"autoIncrementCurrentValue\": 2147483647,\n    \"autoIncrementRatio\": 1,\n    \"dbName\": \"testdb01\",\n    \"maximumValue\": 2147483647,\n    \"columnName\": \"id\",\n    \"tableName\": \"test_table\"\n}"
        }
      ],
      "TableStats": [
        {
          "DbName": "testdb01",
          "TableName": "test_table",
          "TableType": "BASE TABLE",
          "Engine": "InnoDB",
          "PhysicalFileSize": 3057655808,
          "PhyTotalSize": 3012493312,
          "TotalSize": 3005153280,
          "IndexSize": 1022296064,
          "DataSize": 1982857216,
          "DataFree": 7340032,
          "TableRows": 12794732,
          "AvgRowLength": 154,
          "FragmentSize": 362221568
        }
      ]
    }
  },
  "RequestId": "B6D17591-B48B-4D31-9CD6-9B9796B2****",
  "Success": true
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidParams The request parameters are invalid.
403 NoPermission You are not authorized to do this action.

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情