パフォーマンスの調整は反復的なプロセスです。CPU 使用率やレイテンシなどの指標を評価し、スキーマとアプリケーションを調整してパフォーマンスを改善し、再度テストします。
たとえば、スキーマでインデックスの追加や変更、主キーの変更を行えます。アプリケーションでは、バッチ書き込み、クエリの結合や変更が可能です。
特に本番環境トラフィックでは、想定外の事態を回避するためにパフォーマンスの調整が重要です。パフォーマンスの調整は、設定が本番環境のライブ トラフィックのスループットとデータサイズに近いほど効果的です。
スキーマとアプリケーションのパフォーマンスをテストして調整する手順は次のとおりです。
- データのサブセットを Spanner データベースにアップロードします。BigQuery リバース ETL ワークフローを使用して、サンプルデータを読み込むことができます。詳細については、サンプルデータを読み込むをご覧ください。
- アプリケーションが Spanner に指すようにします。
- 基本的なフローを確認して、データベースの整合性を確認します。
- アプリケーションで負荷テストを実行して、パフォーマンスが期待どおりであることを確認します。最も費用のかかるクエリを特定して最適化する方法については、Query Insights でクエリのパフォーマンスの問題を検出するをご覧ください。特に、最適化されていないクエリのパフォーマンスに次の要因が寄与する可能性があります。
- 非効率的なクエリ: 効率的な SQL クエリの作成については、SQL のベスト プラクティスをご覧ください。
- CPU 使用率が高い: 詳細については、高い CPU 使用率について調査するをご覧ください。
- ロック: トランザクション ロックによるボトルネックを軽減するには、高いレイテンシの原因となるトランザクションを特定するをご覧ください。
- 非効率なスキーマ設計: スキーマが適切に設計されていない場合、クエリの最適化は適度な有効性を発揮しません。優れたスキーマの設計の詳細については、スキーマ設計のベスト プラクティスをご覧ください。
- ホットスポット化: Spanner のホットスポットは、特に QPS の非常に高いアプリケーションで書き込みスループットを制限します。ホットスポットやスキーマ設計の問題を特定するには、 Google Cloud コンソールで Key Visualizer の統計情報を確認します。ホットスポットを回避する方法の詳細については、ホットスポットを防ぐ主キーの選択方法をご覧ください。
- スキーマまたはインデックスを変更した場合は、満足できる結果が得られるまでデータベースの整合性とパフォーマンスのテストを行います。
データベース パフォーマンスの微調整の詳細については、Spanner サポートにお問い合わせください。