From a6fe70fa95f2e604cd7bac7daba6440fccddb67a Mon Sep 17 00:00:00 2001 From: Ryohei OKADA Date: Tue, 18 Jun 2013 16:54:45 +0900 Subject: [PATCH] =?utf8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3?= =?utf8?q?=E3=83=88=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/pg_hint_plan-ja.html | 22 +++++++++++----------- doc/style.css | 17 ++++------------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/doc/pg_hint_plan-ja.html b/doc/pg_hint_plan-ja.html index 91024ee..ff41630 100644 --- a/doc/pg_hint_plan-ja.html +++ b/doc/pg_hint_plan-ja.html @@ -128,10 +128,10 @@ postgres=# select * from hint_plan.hints;
-

指定方法の優先度

+指定方法の優先度

ヒントをコメントとテーブルの両方で指定した場合、テーブルで指定したヒントが適用され、コメントで指定したヒントは無視されます。

以下の例では、コメントでヒントを指定して実行計画を制御しているクエリに対して、テーブルに空文字列のヒントを登録しています。こうすることで、コメントで指定したヒントを取り消すことができます。

-
+
 postgres=# select * from hint_plan.hints;
              norm_query_string              | application_name | hints
 --------------------------------------------+------------------+-------
@@ -189,7 +189,14 @@ postgres-#  ORDER BY a.aid;
 

GUCパラメータ

そのクエリの実行計画を作成している間だけGUCパラメータを変更できるヒントのグループで、「Set」のみが含まれます。

設定したいGUCパラメータとそのパラメータの値を指定してください。SETコマンドで指定できるGUCパラメータならば全て指定できますが、効果があるのは問い合わせ計画のGUCパラメータのみです。同じGUCパラメータに対して複数のGUCパラメータのヒントを指定した場合は、最後に指定したヒントが適用されます。

-

Setヒントにpg_hint_planのGUCパラメータを指定することはできますが、期待通りの動作をしないため、指定しないことをおすすめします。指定した場合の実際の動作は、使用上の注意と制約を参照してください。

+
+Setヒントの制限 +

Setヒントにpg_hint_planのGUCパラメータを指定することはできますが、期待通りの動作をしないため、指定しないことをおすすめします。指定した場合の実際の動作を、以下に示します。

+

    +
  • pg_hint_plan.enable_hintおよびpg_hint_plan.debug_printを指定した場合は、無視されます。
  • +
  • pg_hint_plan.parse_messagesを指定した場合は、構文エラーと一部のSetヒントのエラーについてはクエリ開始時の設定レベルで出力され、それ以外のメッセージについてはSetヒントで指定したレベルで出力されます。
  • +
+

pg_hint_planのGUCパラメータ

pg_hint_planの動作を制御するGUCパラメータを以下に記述します。

@@ -208,7 +215,7 @@ postgres-# ORDER BY a.aid;

-PostgreSQL 9.1の環境でこれらのパラメータをpostgresql.confファイルで設定するには、custom_variable_classesにpg_hint_planを加える必要があります。 +PostgreSQL 9.1の環境でこれらのパラメータをpostgresql.confファイルで設定するには、custom_variable_classesにpg_hint_planを加える必要があります。 典型的な使用例は以下のようになります。

@@ -564,13 +571,6 @@ postgres=#
 
pg_hint_planでは、ECPGで実装したアプリケーションから発行するクエリは、基本的に実行計画を制御できません。これは、CプリプロセッサがCコードに変換するタイミングで、全てのブロックコメントを取り除いてしまうためです。ただし、C言語文字列に格納したクエリをEXECUTEコマンドで実行する動的SQLの場合は、クエリ文字列にヒントを指定することで実行計画を制御できます。
ヒントによるフィンガープリントの変化
SQLコメントでヒントを指定した場合、SQL文フィンガープリントベースのクエリキャッシュなどでは、ヒントが異なれば別のSQL文として扱われます。pg_stat_statementも9.1では別クエリとして集計しますが、9.2ではクエリ集約機能によりコメントが除去されるので、ヒントのみが異なるクエリは同じクエリとして扱われます。
-
Setヒントの制限
-
Setヒントにpg_hint_planのGUCパラメータを指定することはできますが、期待通りの動作をしないため、指定しないことをおすすめします。指定した場合の実際の動作を、以下に示します。 -
    -
  • pg_hint_plan.enable_hintおよびpg_hint_plan.debug_printを指定した場合は、無視されます。
  • -
  • pg_hint_plan.parse_messagesを指定した場合は、構文エラーと一部のSetヒントのエラーについてはクエリ開始時の設定レベルで出力され、それ以外のメッセージについてはSetヒントで指定したレベルで出力されます。
  • -
-
diff --git a/doc/style.css b/doc/style.css index 6345215..f1e2e4c 100644 --- a/doc/style.css +++ b/doc/style.css @@ -90,19 +90,10 @@ span.strong { } div.tips{ - border: solid black 1px; - background: #DCDCDC; - line-height: 1.1em; padding: 0.5em; - font-family: 'メイリオ'; -} - -pre.tips { - font-family: courier,sans-serif; - background-color: #E3E3E3; - border: 1px dashed #7E7ECB; - color: black; - line-height: 1.1em; padding: 0.5em; - overflow: auto; + font-size: small; + border: 1px solid #aaa; + background-color: #EFEFEF; + line-height: 1.1em; padding: 0.5em; margin: 0em 2em; } span.bold { -- 2.11.0