2016-09-19 8 views
3

私は、クエリとそれに関連するquery and query plan(gist参照)をシミュレートされたデータ用に持っています。ハイブクエリプランの理解

テーブルlte_data_tenmillionの行数は、行の両方の表のいずれもSUBSCRIBER_ID列のNULL値を持っていないため、テーブル、加入者データの行数が100000

ある10000000 あります。

クエリプランで、述語:subscriber_idがnullでない(型:ブール値)を適用した後にスキャンされた行の数が元の行数のちょうど半分になる理由がわかりません。

サブスクライバテーブルのフィルタ演算子も同様です。

得られた表の行の実際の数は、私はかもしれない2499723.

あり、また、下で述べたように得られたデータの行の総数、「ファイル出力オペレータは[FS_20」5500000.ありますクエリプランを間違って解釈します。クエリプランと実際の結果に見られる不一致を解消できる人がいれば、非常に感謝しています。

ありがとうございます!

答えて

0

統計情報が最新ではありません。 analyze table <table name> compute statistics;コマンドを使用して各テーブルを分析し、計画を再度確認します。 また、explainコマンドの前に、

を追加してください。

+0

私はExplainクエリを実行する前にこのコマンドを発行しました。残念ながら、私は数字の変化は見ませんでした。 –