はじめに
本記事ではAdministration Toolsを使用したクエリスペシフィックプロジェクションの作成方法を紹介します。クエリスペシフィックプロジェクションの詳細とManagement Consoleからの手順は、こちらを参照してください。クエリスペシフィックプロジェクション作成手順
【1】あらかじめ、パフォーマンスを向上したいクエリを記載したsqlファイルを用意しておきます。
1 2 |
[dbadmin@]$ ls -l /tmp/test.sql -rw-r--r-- 1 dbadmin verticadba 362 12月 11 11:35 /tmp/test.sql |
【2】”admintools”と入力し、Administration Toolsを起動します。
1 |
[dbadmin@]$ admintools |
【3】Administration Toolsの「Main Menu」が表示されます。
【4】[6 Configuration Menu]を選択します。
【5】[2 Run Database Designer]を選択します。
【6】実行するデータベースを選択し[OK]を選択します。
【7】データベースのパスワードを入力し[OK]を選択します。
【8】Database Designerの実行結果の出力先を指定し[OK]を選択します。
【9】任意のデザイン名を入力し[OK]を選択します。
【10】デザインタイプで「Incremental」を選択し[OK]を選択します。
【11】Database Designerを実行するスキーマを選択し[OK]を選択します。
【12】「Update statistics」、「Deploy design」を選択し[OK]を選択します。
Database Designerが作成したプロジェクションの内容を確認してから手動で作成したい場合は「Deploy design」のチェックを外して実行します。この場合は【手順8】で指定したディレクトリ内に作成される「プロジェクション名_deploy.sql」の内容を実行することでプロジェクションが作成されます。
【13】上記【1】で作成したクエリを指定し[OK]を選択します。
【14】[Proceed]を選択し、Database Designerを実行します。
【15】Database Designerが完了するまで待機します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Database Designer started. For large databases a design session could take a long time; allow it to complete uninterrupted. Use Ctrl+C if you must cancel the session. Setting up design session... Examining table data... Loading queries from '/tmp/test.sql'. Processed 1 SQL statement(s), all accepted and considered in the design. Creating design and deploying projections... [100%] Design in progress... Completed of . Query optimization results...ress... Query 1 optimization ratio or status is 1 Deploying and generating deployment script... [100%] Deploying/Dropping projections... Completed 1 of 1 projections. Completed 1 of 1 projections. Design script is located in /home/dbadmin/dbd/qsp/table1_pro_cs_query_design.sql Deployment script is located in /home/dbadmin/dbd/qsp/table1_pro_cs_deploy.sql Database Designer finished. Press to return to the Administration Tools menu. |
【deploy.sqlファイルの例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
CREATE PROJECTION public.table1_DBD_1_rep_table1_pro_cs /*+createtype(D)*/ ( 日付 ENCODING AUTO, <--+プロジェクションが保持する列 顧客ID ENCODING COMMONDELTA_COMP, |・クエリの実行に必要な列のみが選択 売上高 ENCODING AUTO <--+・各列に最適な圧縮タイプが選択 ) AS SELECT <--+ 日付, |プロジェクション作成時に必要なSELECT文 顧客ID, |・プロジェクションの作成に必要な列のみが選択 売上高 |・クエリ実行、圧縮に最適なソートが選択されている FROM public.table1 | ORDER BY 日付 <--+ UNSEGMENTED ALL NODES; <--セグメンテーションに関する設定 select refresh('public.table1'); <--リフレッシュの実施。 プロジェクションの作成は実際にはREFRESH実行時に行われます。 |
【deploy.sqlファイルの実行方法】
1 |
dbadmin=> ¥i table1_pro_cs_deploy.sql |
注意事項
Administration Toolsで「スーパープロジェクションを最適化する場合」と「クエリスペシフィックプロジェクションを作成する場合」では、実行対象のオブジェクトに違いがあります。利用ツール | スーパープロジェクションを最適化する場合 | クエリスペシフィックプロジェクションを作成する場合 |
---|---|---|
Administration Tools | 指定されたスキーマ単位 | sqlファイルに記載されたテーブルが対象(スキーマ単位ではない) |
Management Console | 指定されたテーブル単位 | sqlファイルに記載されたテーブルが対象 |
検証バージョンについて
この記事の内容はVertica 10.0で確認しています。更新履歴
2020/12/28 本記事を公開- 投稿タグ
- クエリスペシフィックプロジェクション, QSP