制御実行計画

SQL チューニングの最初の 2 章では、TiDB の実行計画を理解する方法と、TiDB が実行計画を生成する方法を紹介します。この章では、実行計画の問題を特定するときに、実行計画の生成を制御するためにどのような方法を使用できるかを紹介します。この章には主に次の 3 つの側面が含まれます。

  • オプティマイザーのヒントでは、ヒントを使用して TiDB が実行計画を生成するようにガイドする方法を学びます。
  • ただし、ヒントは SQL ステートメントを侵入的に変更します。シナリオによっては、ヒントを単純に挿入できない場合があります。 SQL計画管理では、TiDB が別の構文を使用して実行プランの生成を非侵入的に制御する方法と、バックグラウンドでの自動実行プラン展開の方法について説明します。この方法は、バージョンのアップグレードやクラスターのパフォーマンスの低下によって引き起こされる実行計画の不安定性などの問題に対処するのに役立ちます。
  • 最後に、 最適化ルールと式プッシュダウンのブロックリストでブロックリストの使用方法を学習します。

前述の方法に加えて、実行計画はいくつかのシステム変数にも影響されます。これらの変数をシステム レベルまたはセッション レベルで変更することにより、実行計画の生成を制御できます。 v6.5.3 および v7.1.0 以降、TiDB は比較的特殊な変数tidb_opt_fix_controlを導入します。この変数は複数の制御項目を受け入れて、よりきめ細かい方法でオプティマイザーの動作を制御し、クラスターのアップグレード後のオプティマイザーの動作変更によって引き起こされるパフォーマンスの低下を防ぐことができます。より詳細な紹介については、 オプティマイザー修正コントロールを参照してください。

このページは役に立ちましたか?