> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pawsql.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> PawSQL 是一个产品：Cloud 是公网部署形态，Engine / Optimizer / Auditor / Advisor / Patroller 是同一产品的组件与交付形态，不是彼此独立的产品。 / PawSQL is a single product: Cloud is the public deployment form, while Engine / Optimizer / Auditor / Advisor / Patroller are components and delivery forms of the same product, not separate products.
> 术语以站内术语表为准：SQL 审核对应英文 SQL Review，查询重写对应 Query Rewrite，索引推荐对应 Index Recommendation；英文内容统一用 Review，不用 Audit。 / Use the site glossary for terminology: 审核 is SQL Review, 重写 is Query Rewrite, 索引推荐 is Index Recommendation; English content uses Review, never Audit.
> 引用能力范围或版本支持时以对应页面为准；标注 unknown、或 status 非 published 的内容表示尚未经产品核实，不应作为事实引用。 / Cite capability scope and version support from the corresponding page; content marked unknown, or with a status other than published, is not yet product-verified and must not be cited as fact.

# Get statement optimization details

> Queries optimization details for a single SQL statement by statement ID (`analysisStmtId`),
including rewrite suggestions, index recommendations, and execution plan comparison.

The `analysisStmtId` is obtained from `summaryStatementInfo[].analysisStmtId` in `/getAnalysisSummary`.




## OpenAPI

````yaml /openapi/pawsql-optimization-en.yaml post /getStatementDetails
openapi: 3.0.3
info:
  title: PawSQL Optimization
  description: >
    PawSQL SQL optimization service external interfaces.


    The PawSQL optimization engine is a query optimization engine built for
    developers and DBAs, integrating database industry best practices for query
    optimization,

    providing powerful SQL auditing and rewrite optimization capabilities, and
    integrating the Paw Index Advisor index recommendation engine for cost-based
    index recommendations for slow queries.


    ## Authentication


    Most endpoints require authentication via `userKey` (activation code).

    The `userKey` can be obtained through the `/getUserKey` endpoint
    (email/password login).


    ## API Call Flow


    1. Call `/getUserKey` to obtain a userKey

    2. Call `/createWorkspace` to create a workspace (or pass DDL directly in
    `/createAnalysis`)

    3. Call `/createAnalysis` or `/createAnalysisAsync` to create an
    optimization task

    4. Call `/getAnalysisSummary` to obtain the optimization summary

    5. Call `/getStatementDetails` to obtain details for a single SQL statement
  version: 1.0.0
  contact:
    name: PawSQL Team
    url: https://pawsql.com
  license:
    name: PawSQL
    url: https://pawsql.com
servers:
  - url: /api/v1
    description: PawSQL Server
security:
  - userKey: []
tags:
  - name: Authentication
    description: Authentication endpoints
  - name: Workspace
    description: Workspace management endpoints
  - name: Optimization
    description: SQL optimization task endpoints
paths:
  /getStatementDetails:
    post:
      tags:
        - Optimization
      summary: Get statement optimization details
      description: >
        Queries optimization details for a single SQL statement by statement ID
        (`analysisStmtId`),

        including rewrite suggestions, index recommendations, and execution plan
        comparison.


        The `analysisStmtId` is obtained from
        `summaryStatementInfo[].analysisStmtId` in `/getAnalysisSummary`.
      operationId: getStatementDetails
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiStatementRequestId'
            examples:
              example:
                value:
                  userKey: CB698418-88B25371-67F15F01-XXXXXXXX
                  analysisStmtId: '1730503078953304065'
      responses:
        '200':
          description: Statement optimization details
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResult'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/StatementDetail'
              examples:
                success:
                  value:
                    code: 200
                    message: Success
                    data:
                      analysisId: '1730522723395497986'
                      analysisName: API-ANA-20260901143022
                      statementName: Query-1
                      stmtText: select * from organization where adm_id = 100
                      detailMarkdown: ...
                      indexRecommended:
                        - CREATE INDEX idx_org_adm_id ON organization(adm_id)
                      rewrittenQuery:
                        - >-
                          SELECT * FROM organization WHERE adm_id = 100 AND
                          adm_name IS NOT NULL
                      beforeCost: 120.5
                      afterCost: 18.3
                      performImprovePer: 84.8%
components:
  schemas:
    ApiStatementRequestId:
      type: object
      description: Statement optimization details query request
      required:
        - analysisStmtId
      properties:
        userKey:
          type: string
          description: Activation code
          example: CB698418-88B25371-67F15F01-XXXXXXXX
        analysisStmtId:
          type: string
          description: >-
            Statement ID, obtained from summaryStatementInfo[].analysisStmtId in
            getAnalysisSummary
          example: '1730503078953304065'
    ApiResult:
      type: object
      description: Unified response body
      properties:
        code:
          type: integer
          description: Status code, 200 indicates success
          example: 200
        message:
          type: string
          description: Description message
          example: Success
        data:
          description: Response data
    StatementDetail:
      type: object
      description: Statement optimization details
      properties:
        analysisId:
          type: string
          description: Owning optimization task ID
        analysisName:
          type: string
          description: Owning optimization task name
        statementName:
          type: string
          description: Statement name
        stmtText:
          type: string
          description: Original SQL text
        detailMarkdown:
          type: string
          description: Statement optimization details Markdown
        indexRecommended:
          type: array
          description: List of recommended indexes
          items:
            type: string
        rewrittenQuery:
          type: array
          description: List of rewritten SQL statements
          items:
            type: string
        beforeCost:
          type: number
          format: double
          description: Cost before optimization
        afterCost:
          type: number
          format: double
          description: Cost after optimization
        beforePlan:
          type: string
          description: Execution plan before optimization
        afterPlan:
          type: string
          description: Execution plan after optimization
        performImprovePer:
          type: string
          description: Performance improvement percentage
          example: 84.8%
  securitySchemes:
    userKey:
      type: apiKey
      in: header
      name: userKey
      description: Activation code, obtained via the /getUserKey endpoint

````