web-dev-qa-db-ja.com

DB2 Explainはどのように使用しますか?

DB2のExplain関数はどのように使用しますか? -実行とクエリの最適化に使用します。 DB2で利用できるより良いツールはありますか?

私は以前にクエリを作成しましたが、クエリにかかる時間を知る必要があった唯一の方法は、クエリを実行して時間を計ることです。これはほとんど理想的ではありません。

編集:私にとっての答えは、「できません。あなたは持っておらず、アクセスを取得することはできません」でした。官僚主義は好きではありませんか?

23
Trevel

探しているものは、2つのDB2ユーティリティーでカバーされています。

  1. explainユーティリティ 。これは、オプティマイザのアクセスプランと特定のクエリの推定コストを示します(現在のRUNSTATS統計に基づく)。
  2. design advisor 。1つ以上のクエリのパフォーマンスを向上させるために構造的な変更を推奨します

どちらのユーティリティも、データベースに作成するために特別な tables が必要です。

特に、クエリのSQLを変更してより良いアクセスプランに影響を与えることができる場合は、アドバイザーよりも説明ユーティリティを使用する傾向があります。 db2explnコマンド行ユーティリティーを使用して、調整している照会のさまざまなバージョンを説明し、それらのコストを比較します。最も重要なことは、Explainまたはデザインアドバイザーを実行するときに、テーブルとインデックスの統計が最新であることです。

18
Fred Sobotka

IBMは Data Studio をEclipse上に構築された無料のツールとして提供しており、これには他の利点もあります視覚的なExplainを実行するためのGUI、およびクエリアドバイザーを通じてチューニングのヘルプを提供するためのGUIが含まれています。データスタジオの使用を強くお勧めします。

接続されているデータソースを右クリックし、次のように選択することで、適切なリソース(構築する必要のあるExplainテーブル、および実行する必要のあるバインド)を比較的簡単にセットアップできます。

分析と調整>調整のための構成>ガイド付き構成

enter image description here

Explainグラフを生成するには-クエリを強調表示して右クリックし、[Open Visual Explain]を選択します。

enter image description here

query advisorを使用するには、代わりに「開始チューニング」を選択します。それは説明を生成するプロセスを通してあなたを連れて行くだろう、そしてそれが決定することができるどんなチューニング機会でも推薦する。

enter image description here

12
Josh Hull

db2expln -databaseサンプル-t -g -f "SQLクエリ"

これでうまくいきました。

6
khkarens

「-g」モードをオンにしてコマンドラインから説明ユーティリティを実行すると、問題を特定するのに役立ちました。

現在、オプションを思い出すことはできません。IIRC、db2explnは順序について少しうるさいです{つまり、パスワードの後に​​ユーザー名を置くことはできません!!}-しかし、それはうまく機能します。

3
phatmanace