

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# OPTIMIZE
<a name="optimize-statement"></a>

根據相關刪除檔案的大小和數量，將資料檔案重寫成更好的版面配置，進而最佳化 Apache Iceberg 資料表中的列。

**注意**  
`OPTIMIZE` 是交易型的並且僅由 Apache Iceberg 資料表支援。

## 語法
<a name="optimize-statement-syntax"></a>

以下語法摘要說明最佳化處理 Iceberg 資料表的方式。

```
OPTIMIZE [{{db_name}}.]{{table_name}} REWRITE DATA USING BIN_PACK
  [WHERE {{predicate}}]
```

**注意**  
`WHERE` 子句{{述詞}}中只允許分割區資料欄。指定非分割區資料欄會導致查詢失敗。

壓縮動作按重寫過程中掃描的資料量計費。`REWRITE DATA` 動作使用述詞來選擇包含對應資料列的檔案。如果檔案中的任何資料列與述詞相對應，則會選擇該檔案進行最佳化處理。因此，為了控制壓縮時包含的文件數量，請指定 `WHERE` 子句。

## 設定壓縮屬性
<a name="optimize-statement-configuring-compaction-properties"></a>

為了控制要選擇進行壓縮的檔案大小以及壓縮後產生的檔案大小，請使用資料表屬性參數。您可以使用 [ALTER TABLE SET TBLPROPERTIES](querying-iceberg-alter-table-set-properties.md) 命令來設定相關的[資料表屬性](querying-iceberg-creating-tables.md#querying-iceberg-table-properties)。

## 其他資源
<a name="optimize-statement-additional-resources"></a>

[最佳化 Iceberg 資料表](querying-iceberg-data-optimization.md)