-1

Vertica DBがどのように機能するかを理解しようとしていますが、クエリで使用されるプロジェクションを作成するための最良の方法を知りたいと思っています。

  1. 行にコードを書くことで作成できることはわかっていますvsql
  2. Verticaがそれ自体に適切なプロジェクションを作成できるように、Verticaデータベースデザイナに使用されるクエリを提供します。

(DB Designerを使用せずに)手動で作成するため、少し混乱していますが、Verticaはそれらを使用するために継ぎ目がありません。

次に例を示します。

  • テーブルAAA(id, name, address)があり、このクエリを実行する予定です。

    select count(name) from AAA;

  • このために、私は次のようなプロジェクションを作成していますproj1

    create projection proj1 as select name from AAA;

  • これで作成したプロジェクションができましたが、フォームを実行するexplainと、select countスクリプトは、作成したプロジェクションが使用されていないことを示しています。

誰かが私がここで問題を理解するのを手伝ってもらえますか?

4

1 に答える 1

1

クエリ固有のプロジェクション (すべての列を含まない) には、すべての行が含まれていない可能性があり、テーブル内のレコードの正確な数が得られません。列/テーブルの行数を正確にカウントするには、スーパー プロジェクションを使用する必要があります。

スーパープロジェクションに逆らう場合と比較して、そのクエリ固有のプロジェクションには利点がありません。クエリは「名前」列のみを処理し、メタデータは、カウントの精度を確保しながら、クエリ固有のプロジェクションと同じくらい迅速にスーパー プロジェクションからその情報を提供できます。

テーブル名の代わりにプロジェクション名を使用してクエリを実行すると、特定のプロジェクションが強制的に使用されます。この方法で実行時間を比較できます。

于 2012-07-18T20:05:07.593 に答える