Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions grafana-performance-overview-dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ SQL実行フェーズは緑色で、その他のフェーズは全体的に赤

### Queries Using Plan Cache OPS {#queries-using-plan-cache-ops}

- avg-hit: すべての TiDB インスタンスで 1秒あたりに実行計画 キャッシュを使用するクエリの数
- avg-miss: すべての TiDB インスタンスにおける、実行計画 キャッシュを使用していないクエリの数 (1秒あたり)
- avg-hit: すべての TiDB インスタンスで 1秒あたりに実行プランキャッシュを使用するクエリの数
- avg-miss: すべての TiDB インスタンスにおける、実行プランキャッシュを使用していないクエリの数 (1秒あたり)

`avg-hit + avg-miss`は`StmtExecute`に等しく、これは 1秒あたりに実行されるすべてのクエリの数です。

Expand Down
4 changes: 2 additions & 2 deletions releases/release-7.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ TiDB バージョン: 7.0.0- [DMR](/releases/versioning.md#development-milestone

- 非プリペアドステートメントの実行計画のキャッシュをサポートする(実験的) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990)

実行プランキャッシュは同時実行 OLTP の処理能力を向上させるために重要であり、TiDB はすでに[プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)をサポートしています。 v7.0.0 では、TiDB は非 Prepare文の実行計画をキャッシュすることもできるため、実行計画 キャッシュの範囲が拡張され、TiDB の同時処理能力が向上します。
実行プランキャッシュは同時実行 OLTP の処理能力を向上させるために重要であり、TiDB はすでに[プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)をサポートしています。 v7.0.0 では、TiDB は非 Prepare文の実行計画をキャッシュすることもできるため、実行プランキャッシュの範囲が拡張され、TiDB の同時処理能力が向上します。

この機能はデフォルトでは無効になっています。システム変数[`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache)を`ON`に設定することで有効にできます。安定性のため、TiDB v7.0.0 では非プリペアド実行計画をキャッシュするための新しい領域が割り当てられ、システム変数[`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size)を使用してキャッシュサイズを設定できます。さらに、この機能には SQL文に関する特定の制限があります。詳細については、 [制限](/sql-non-prepared-plan-cache.md#restrictions)を参照してください。

詳細については、[ドキュメント](/sql-non-prepared-plan-cache.md)を参照してください。

- TiDB がサブクエリの実行計画 キャッシュ制約を削除 [#40219](https://github.com/pingcap/tidb/issues/40219) @[fzzf678](https://github.com/fzzf678)
- TiDB がサブクエリの実行プランキャッシュ制約を削除 [#40219](https://github.com/pingcap/tidb/issues/40219) @[fzzf678](https://github.com/fzzf678)

TiDB v7.0.0 では、サブクエリに対する実行プランキャッシュの制約が解除されました。これにより、 `SELECT * FROM t WHERE a > (SELECT ...)`のようにサブクエリを含む SQL文の実行計画をキャッシュできるようになりました。この機能により、実行プランキャッシュの適用範囲がさらに拡大し、SQL クエリの実行効率が向上します。

Expand Down
2 changes: 1 addition & 1 deletion releases/release-8.2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ TiDB バージョン: 8.2.0

- 実行計画がキャッシュされない理由を記録する [#50618](https://github.com/pingcap/tidb/issues/50618) @[qw4990](https://github.com/qw4990)

場合によっては、実行オーバーヘッドを削減し、レイテンシーを低減するために、ほとんどの実行計画をキャッシュしたい場合があります。現在、SQL の実行計画 キャッシュにはいくつかの制限があります。一部の SQL文の実行計画はキャッシュできません。キャッシュできない SQL文と、それに対応する理由を特定するのは困難です。
場合によっては、実行オーバーヘッドを削減し、レイテンシーを低減するために、ほとんどの実行計画をキャッシュしたい場合があります。現在、SQL の実行プランキャッシュにはいくつかの制限があります。一部の SQL文の実行計画はキャッシュできません。キャッシュできない SQL文と、それに対応する理由を特定するのは困難です。

そのため、v8.2.0以降、実行計画をキャッシュできない理由を説明する新しい列`PLAN_CACHE_UNQUALIFIED`と`PLAN_CACHE_UNQUALIFIED_LAST_REASON`がシステムテーブル[`STATEMENTS_SUMMARY`](/statement-summary-tables.md)に追加され、パフォーマンスの調整に役立ちます。

Expand Down
4 changes: 2 additions & 2 deletions releases/release-8.4.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,13 @@ TiDB バージョン: 8.4.0
- 冗長性を排除し、同じメモリ消費量でより多くの実行計画をキャッシュします。
- インスタンスに固定サイズのメモリを割り当て、メモリ使用量をより効果的に制限します。

v8.4.0 では、インスタンスレベルの実行計画 キャッシュはクエリ実行計画のキャッシュのみをサポートしており、デフォルトでは無効になっています。 [`tidb_enable_instance_plan_cache`](/system-variables.md#tidb_enable_instance_plan_cache-new-in-v840)を使用してこの機能を有効にし、 [`tidb_instance_plan_cache_max_size`](/system-variables.md#tidb_instance_plan_cache_max_size-new-in-v840)を使用して最大メモリ使用量を設定できます。この機能を有効にする前に、[プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)と[非プリペアドプランキャッシュ](/sql-non-prepared-plan-cache.md)を無効にしてください。
v8.4.0 では、インスタンスレベルの実行プランキャッシュはクエリ実行計画のキャッシュのみをサポートしており、デフォルトでは無効になっています。 [`tidb_enable_instance_plan_cache`](/system-variables.md#tidb_enable_instance_plan_cache-new-in-v840)を使用してこの機能を有効にし、 [`tidb_instance_plan_cache_max_size`](/system-variables.md#tidb_instance_plan_cache_max_size-new-in-v840)を使用して最大メモリ使用量を設定できます。この機能を有効にする前に、[プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)と[非プリペアドプランキャッシュ](/sql-non-prepared-plan-cache.md)を無効にしてください。

詳細については、 [ドキュメント](/system-variables.md#tidb_enable_instance_plan_cache-new-in-v840)を参照してください。

- TiDB Lightningの論理インポートモードは、プリペアドステートメントとクライアントステートメントキャッシュをサポートします [#54850](https://github.com/pingcap/tidb/issues/54850) @[dbsid](https://github.com/dbsid)

`logical-import-prep-stmt`設定項目を有効にすると、TiDB Lightning の論理インポートモードで実行される SQL文は、プリペアドステートメントとクライアント ステートメントキャッシュを使用します。これにより、 TiDB SQLの解析とコンパイルのコストが削減され、SQL の実行効率が向上し、実行計画 キャッシュへのアクセス確率が高まるため、論理インポートが高速化されます。
`logical-import-prep-stmt`設定項目を有効にすると、TiDB Lightning の論理インポートモードで実行される SQL文は、プリペアドステートメントとクライアント ステートメントキャッシュを使用します。これにより、 TiDB SQLの解析とコンパイルのコストが削減され、SQL の実行効率が向上し、実行プランキャッシュへのアクセス確率が高まるため、論理インポートが高速化されます。

詳細については、 [ドキュメント](/tidb-lightning/tidb-lightning-configuration.md)を参照してください。

Expand Down
8 changes: 4 additions & 4 deletions sql-prepared-plan-cache.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ LRUリンクリストは、 `Prepare` / `Execute`セッションをまたいで

前述の情報に変更がある場合 (たとえば、データベースの切り替え、 `Prepare`文の名前変更、DDL 文の実行、SQL mode/ `time_zone`の値の変更)、または LRU キャッシュ削除メカニズムにより、実行時に実行計画のキャッシュ ミスが発生します。

実行計画キャッシュがキャッシュから取得された後、TiDBはまず実行計画がまだ有効かどうかを確認します。現在の`Execute`文が明示的なトランザクションで実行され、参照先のテーブルがトランザクションの事前順序付け文で変更された場合、このテーブルにアクセスするキャッシュされた実行計画に`UnionScan`オペレーターが含まれていないため、実行できません。
実行プランがキャッシュから取得された後、TiDBはまず実行計画がまだ有効かどうかを確認します。現在の`Execute`文が明示的なトランザクションで実行され、参照先のテーブルがトランザクションの事前順序付け文で変更された場合、このテーブルにアクセスするキャッシュされた実行計画に`UnionScan`オペレーターが含まれていないため、実行できません。

検証テストに合格すると、実行計画のスキャン範囲が現在のパラメータ値に応じて調整され、データクエリの実行に使用されます。

Expand Down Expand Up @@ -97,7 +97,7 @@ MySQL [test]> select @@last_plan_from_cache;
1 row in set (0.00 sec)
```

実行計画キャッシュが原因で、特定の`Prepare` / `Execute`のセットで予期しない動作が発生する場合は、SQLヒント`ignore_plan_cache()`を使用して、現在のステートメントの実行計画キャッシュの使用をスキップできます。ただし、前述のステートメントを例として挙げます。
実行プランキャッシュが原因で、特定の`Prepare` / `Execute`のセットで予期しない動作が発生する場合は、SQLヒント`ignore_plan_cache()`を使用して、現在のステートメントの実行プランキャッシュの使用をスキップできます。ここでも、前述のステートメントを例として挙げます。

```sql
MySQL [test]> prepare stmt from 'select /*+ ignore_plan_cache() */ * from t where a = ?';
Expand Down Expand Up @@ -236,7 +236,7 @@ TiDBサーバーの未使用メモリが一定のしきい値を下回ると、

</CustomContent>

## 実行計画のキャッシュをクリアする {#clear-execution-plan-cache}
## 実行プランキャッシュをクリアする {#clear-execution-plan-cache}

`ADMIN FLUSH [SESSION | INSTANCE] PLAN_CACHE`ステートメントを実行すると、実行プランキャッシュをクリアできます。

Expand Down Expand Up @@ -280,7 +280,7 @@ MySQL [test]> select @@last_plan_from_cache; -- The cached plan cannot be select
1 row in set (0.00 sec)
```

現在、TiDBは`GLOBAL`実行計画キャッシュのクリアをサポートしていません。つまり、TiDBクラスタ全体のキャッシュされた計画をクリアすることはできません。`GLOBAL`実行計画キャッシュをクリアしようとすると、以下のエラーが報告されます。
現在、TiDBは`GLOBAL`実行プランキャッシュのクリアをサポートしていません。つまり、TiDBクラスタ全体のキャッシュされた実行プランをクリアすることはできません。`GLOBAL`実行プランキャッシュをクリアしようとすると、以下のエラーが報告されます。

```sql
MySQL [test]> admin flush global plan_cache;
Expand Down
4 changes: 2 additions & 2 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -2332,7 +2332,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1;

> **Warning:**
>
> DML文用の非プリペアド実行計画 キャッシュは実験的機能です。本番環境での使用は推奨されません。この機能は予告なく変更または削除される可能性があります。バグを発見した場合は、GitHub で[問題](https://github.com/pingcap/tidb/issues)を報告してください。
> DML文用の非プリペアドプランキャッシュは実験的機能です。本番環境での使用は推奨されません。この機能は予告なく変更または削除される可能性があります。バグを発見した場合は、GitHub で[問題](https://github.com/pingcap/tidb/issues)を報告してください。

- 範囲: セッション | グローバル
- クラスターに保持される: はい
Expand Down Expand Up @@ -2569,7 +2569,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1;
- ヒント[SET_VAR](/optimizer-hints.md#set_varvar_namevar_value)に適用:いいえ
- 型: Boolean
- デフォルト値: `OFF`
- この変数は、インスタンスプランキャッシュ機能を有効にするかどうかを制御します。この機能はインスタンスレベルの実行計画 キャッシュを実装しており、同じ TiDB インスタンス内のすべてのセッションが実行計画 キャッシュを共有できるため、メモリ使用率が向上します。インスタンスプランキャッシュを有効にする前に、セッションレベル[プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)と[非プリペアドプランキャッシュ](/sql-non-prepared-plan-cache.md)を無効にすることをお勧めします。
- この変数は、インスタンスプランキャッシュ機能を有効にするかどうかを制御します。この機能はインスタンスレベルの実行プランキャッシュを実装しており、同じ TiDB インスタンス内のすべてのセッションが実行プランキャッシュを共有できるため、メモリ使用率が向上します。インスタンスプランキャッシュを有効にする前に、セッションレベル[プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)と[非プリペアドプランキャッシュ](/sql-non-prepared-plan-cache.md)を無効にすることをお勧めします。

### tidb_enable_ordered_result_mode

Expand Down
4 changes: 2 additions & 2 deletions tidb-cloud/monitor-datadog-integration-for-tidb-x.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ Datadog は、<CustomContent plan="essential">{{{ .essential }}}</CustomContent>
| `tidb_cloud.db_query_per_second` | gauge | `type: Select\|Insert\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | 文の種類ごとに集計された、1秒あたりに実行された SQL 文の数 |
| `tidb_cloud.db_failed_queries` | gauge | `type: planner:xxx\|executor:2345\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | SQL 文の実行時に 1秒あたりに発生したエラー種別(構文エラーや主キー競合など)の統計 |
| `tidb_cloud.db_command_per_second` | gauge | `type: Query\|Ping\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | TiDB が 1秒あたりに処理したコマンド数 |
| `tidb_cloud.db_queries_using_plan_cache_ops` | gauge | `instance_id: <instance id>`<br/>`instance_name: <instance name>` | 1秒あたりに実行計画キャッシュにヒットしたクエリ数 |
| `tidb_cloud.db_queries_using_plan_cache_ops` | gauge | `instance_id: <instance id>`<br/>`instance_name: <instance name>` | 1秒あたりに実行プランキャッシュにヒットしたクエリ数 |
| `tidb_cloud.db_average_query_duration` | gauge | `sql_type: Select\|Insert\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | ネットワークリクエストが TiDB に送信されてから、レスポンスがクライアントに返されるまでの時間 |
| `tidb_cloud.db_transaction_per_second` | gauge | `type: Commit\|Rollback\|...`<br/>`txn_mode: optimistic\|pessimistic`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | 1秒あたりに実行されたトランザクション数 |
| `tidb_cloud.db_row_storage_used_bytes` | gauge | `instance_id: <instance id>`<br/>`instance_name: <instance name>` | {{{ .essential }}} インスタンスの行ベースストレージサイズ(バイト) |
Expand All @@ -126,7 +126,7 @@ Datadog は、<CustomContent plan="essential">{{{ .essential }}}</CustomContent>
| `tidb_cloud.db_query_per_second` | gauge | `type: Select\|Insert\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | 文の種類ごとに集計された、1秒あたりに実行された SQL 文の数 |
| `tidb_cloud.db_failed_queries` | gauge | `type: planner:xxx\|executor:2345\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | SQL 文の実行時に 1秒あたりに発生したエラー種別(構文エラーや主キー競合など)の統計 |
| `tidb_cloud.db_command_per_second` | gauge | `type: Query\|Ping\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | TiDB が 1秒あたりに処理したコマンド数 |
| `tidb_cloud.db_queries_using_plan_cache_ops` | gauge | `instance_id: <instance id>`<br/>`instance_name: <instance name>` | 1秒あたりに実行計画キャッシュにヒットしたクエリ数 |
| `tidb_cloud.db_queries_using_plan_cache_ops` | gauge | `instance_id: <instance id>`<br/>`instance_name: <instance name>` | 1秒あたりに実行プランキャッシュにヒットしたクエリ数 |
| `tidb_cloud.db_average_query_duration` | gauge | `sql_type: Select\|Insert\|...`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | ネットワークリクエストが TiDB に送信されてから、レスポンスがクライアントに返されるまでの時間 |
| `tidb_cloud.db_transaction_per_second` | gauge | `type: Commit\|Rollback\|...`<br/>`txn_mode: optimistic\|pessimistic`<br/>`instance_id: <instance id>`<br/>`instance_name: <instance name>` | 1秒あたりに実行されたトランザクション数 |
| `tidb_cloud.db_row_storage_used_bytes` | gauge | `instance_id: <instance id>`<br/>`instance_name: <instance name>` | {{{ .premium }}} インスタンスの行ベースストレージサイズ(バイト) |
Expand Down
Loading
Loading