全部產品
Search
文件中心

:GetStorageAnalysisResult - 擷取空間分析任務的結果

更新時間:Dec 19, 2025

調用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.

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情