OSDN Git Service

Merge branch 'add_id'
authorTakashi Suzuki <suzuki.takashi@metrosystems.co.jp>
Thu, 15 Aug 2013 05:01:07 +0000 (14:01 +0900)
committerTakashi Suzuki <suzuki.takashi@metrosystems.co.jp>
Thu, 15 Aug 2013 05:01:07 +0000 (14:01 +0900)
doc/pg_hint_plan-ja.html
expected/ut-A-9.1.out
expected/ut-A-9.2.out
pg_hint_plan--1.0.sql

index 50d01d2..3580528 100644 (file)
@@ -110,7 +110,7 @@ postgres=#
 </tr></thead>
 <tbody>
 <tr><td>id</td>
-  <td>識別番号です。連番型ですので、新しいヒントを登録するときにはこの列を指定せずに登録してください。クエリやアプリケーション名やヒントを更新するときに使用してください。</td></tr>
+  <td>ユーザがヒントを識別するための番号です。連番型ですので、新しいヒントを登録するときにはこの列を指定しないでください。</td></tr>
 <tr><td>norm_query_string</td>
   <td>実行計画を制御したいクエリを指定します。対象のクエリに定数があるときは、下記の例のように「?」に置き換えます。キーワード間の空白の数が、登録するクエリと実行するクエリで異なると別のSQL文として扱われます。</td></tr>
 <tr><td>application_name</td>
@@ -119,6 +119,27 @@ postgres=#
   <td>ヒントを指定します。ヒント以外のもの(SQLコメントなど)を含めないでください。</td></tr>
 </tbody>
 </table>
+<p>ヒントの登録情報を変更する場合は、変更したい登録情報のidを指定して登録情報を更新してください。</br>
+ヒントの登録を解除する場合は、解除したい登録情報のidを指定してテーブルから削除してください。</p>
+<p>以下の例では、ヒントの登録、ヒント登録情報の変更、ヒントの登録解除の順に、クエリの実行結果を示しています。
+</p>
+<pre>
+postgres=# INSERT INTO hint_plan.hints(norm_query_string, application_name, hints)
+postgres-#     VALUES (
+postgres(#         'EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?;',
+postgres(#         '',
+postgres(#         'SeqScan(t1)'
+postgres(#     );
+INSERT 0 1
+postgres=# UPDATE hint_plan.hints
+postgres-#    SET hints = 'IndexScan(t1)'
+postgres-#  WHERE id = 1;
+UPDATE 1
+postgres=# DELETE FROM hint_plan.hints
+postgres-#  WHERE id = 1;
+DELETE 1
+postgres=#
+</pre>
 <p>以下の例では、テーブルに登録した「コメントでの指定」の例と同じヒントと、登録したクエリの実行結果を示しています。</p>
 <pre>
 postgres=# SELECT * FROM hint_plan.hints;
index 39ca42d..2e0f44b 100644 (file)
@@ -142,6 +142,7 @@ SET pg_hint_plan.enable_hint_table TO on;
  hints             | text    | not null
 Indexes:
     "hints_pkey" PRIMARY KEY, btree (id)
+    "hints_norm_and_app" UNIQUE, btree (norm_query_string, application_name)
 
 ----
 ---- No. A-6-2 search condition
index 9b89530..e81a6ef 100644 (file)
@@ -142,6 +142,7 @@ SET pg_hint_plan.enable_hint_table TO on;
  hints             | text    | not null
 Indexes:
     "hints_pkey" PRIMARY KEY, btree (id)
+    "hints_norm_and_app" UNIQUE, btree (norm_query_string, application_name)
 
 ----
 ---- No. A-6-2 search condition
index d07351a..305baa9 100644 (file)
@@ -10,3 +10,7 @@ CREATE TABLE hint_plan.hints (
        hints                           text    NOT NULL,
        PRIMARY KEY (id)
 );
+CREATE UNIQUE INDEX hints_norm_and_app ON hint_plan.hints (
+       norm_query_string,
+       application_name
+);