OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

vsql上でプロジェクションのソート順を確認する方法

公開日:
更新日:
基本操作
#プロジェクション
#vsql

Verticaではプロジェクションを最適化することで、データが最適な順番でソートされるため、検索パフォーマンスを向上させることができます。
Databae Designer(DBD)で最適化を実行後、意図した順番でソートされているか確認したい場合は、DBD実行時に出力されるデプロイファイル(XXX_deploy.sql)で確認できますが、vsql上からも確認できます。

プロジェクションのソート順の確認方法

1)以下のSQLを実行し、ソート順を確認したいプロジェクション(テーブル)のプロジェクション名を確認します。

SELECT * FROM projections
WHERE projection_schema='スキーマ名' 
      AND 
      anchor_table_name='テーブル名';

例)table1のプロジェクション名を確認する場合

dbadmin=> SELECT anchor_table_name,projection_name
dbadmin-> FROM projections
dbadmin-> WHERE projection_schema='public'
dbadmin->       AND
dbadmin->       anchor_table_name='table1';
 anchor_table_name |  projection_name
-------------------+-------------------
 table1            | table1_DBD_seg_b0
 table1            | table1_DBD_seg_b1
(2 rows)

2)以下のSQLを実行し、手順1)で確認したプロジェクションのソート順を確認します。

SELECT table_name,table_column_name,column_position,sort_position
FROM projection_columns 
WHERE table_schema='スキーマ名'
      AND
      table_name='テーブル名'
      AND
      projection_name='手順1)で確認したプロジェクション名'
ORDER BY column_position;

※K-safetyが1以上になっている場合は、レプリカのプロジェクションが存在するため、手順1)の例のように、1つのテーブルに対して複数のプロジェクションが存在します。その場合は、どちらか一方のプロジェクション名を指定します。

例)table1_DBD_seg_b0プロジェクションのソート順を確認する場合

dbadmin=> SELECT table_name,table_column_name,column_position,sort_position
dbadmin-> FROM projection_columns
dbadmin-> WHERE table_schema='public'
dbadmin->       AND
dbadmin->       table_name='table1'
dbadmin->       AND
dbadmin->       projection_name='table1_DBD_seg_b0'
dbadmin-> ORDER BY column_position;
 table_name | table_column_name | column_position | sort_position
------------+-------------------+-----------------+---------------
 table1     | 日付              |               0 |
 table1     | 顧客ID            |               1 |
 table1     | 店舗              |               2 |             1
 table1     | エリア            |               3 |             0
 table1     | 売上高            |               4 |
(5 rows)

上記例の場合、table1のプロジェクションは、エリア列、店舗列の順にソートされていることが確認できます。

[projection_columns]

列名

内容

table_name

テーブル名

table_column_name

列名

column_position

列の順番
数字が小さい列から順に並んでいる

sort_position

列のソート順
数字が小さい列から順にソートされている(「0」が1番目のソート列、「1」が2番目のソート列)。
ソート対象外の列は空白になる。

参考情報

admintoolsを利用したDatabase Designerの実行手順
https://www.ashisuto.co.jp/cm/analytics-database/execute-database-designer-using-admintools.html

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。