2023-04-01から1ヶ月間の記事一覧
SQL elect b.database, substring(b.querytxt,1,30) sql, a.* from svl_query_metrics_summary a, stl_query b where a. query = b.query and b.querytxt like '%/* TPC-H Q%' order by substring(b.querytxt,1,30); 結果 database | sql | userid | query |…
Amazon Redshift はゾーンマップで 1MB ブロックの最小値と最大値を保持しているので、クエリのフィルタ条件などに合致しないブロックを読み飛ばすことができる。ソートキーでソートされていないと同じ値のデータがあちこちのブロックに散らばるため、ソート…
計測 EVEN分散 =# select count(l_orderkey) from lineitem join orders on o_orderkey = l_orderkey and l_shipdate > '1996-01-01'; count ------------ 7518747994 (1 row) Time: 150000.148 ms (02:30.000) クエリID取得 =# select pg_last_query_id(); …
svv_table_info.skew_rows (スライス単位での最大行数/最小行数)の値が大きいと偏っている。 =# select * from svv_table_info where "table" = 'lineitem_dk_shipdate1'; -[ RECORD 1 ]----------+--------------------------------- database | tpch_3tb…
%/はデータベース名 PostgreSQLのコマンドラインの動きを改善してみる | Yakst 例 ~/.psqlrc \set PROMPT1 '%[%033[1;32m%]%/ %n %`date '+%Y%m%d_%H:%M:%S'` %R%#%[%033[0m%] ' \set PROMPT2 '%[%033[1;32m%]%R%#%[%033[0m%] ' \timing on \set HISTSIZE 10…
Amazon Redshift で2列で内部結合しているクエリで、分散キーが2列のうち偏りのある列にした場合と偏りのない列にした場合の比較。 検証結果 偏りのある列(l_shipdate)が分散キー select sum(a.l_quantity), count(a.l_orderkey), min(a.l_shipdate), max(…
Amazon Redshift で結合キーに関数を使うとソートマージ結合にならないパターン。 検証結果 結合キーに collate 関数を使用 クライアントからみた実行時間は25分47秒。 select a.l_linenumber, avg(a.l_quantity) from lineitem a, lineitem b where collate…
ソートマージ結合になる条件 両テーブルの結合キーが分散キーとソートキーに指定されている 結合対象表の未ソート率が20%未満 Merge Join Typically the fastest join, a merge join is used for inner joins and outer joins. The merge join is not used f…
前提 Cloud Data Warehouse Benchmark Derived from TPC-H のテーブル・データを使用 環境: ue-east-1 に Amazon Redshift クラスター(ra3.4xlarge x 4 node)を作成 計測結果 効率的なソートキー 実行時間(クライアント側): 2.8 秒 =# select min(l_ship…
Amazon Redshift で Cloud Data Warehouse Benchmark Derived from TPC-H を実行してみる。 ue-east-1 に Amazon Redshift クラスターを作成する ra3.4xlarge x 4 node Cloud Data Warehouse Benchmark Derived from TPC-H の 100GB のデータセットをロード…
SVL_QUERY_METRICS は STL_QUERY_METRICS を参照しており、STL_QUERY_METRICS は1 秒未満で実行されるクエリセグメントは記録されない場合があるためと思われる。 STL_QUERY_METRICS Contains metrics information, such as the number of rows processed, C…
計測 分散キー・ソートキーなし # set search_path to ssbgz_no_sortkey; # show search_path; # set enable_result_cache_for_session=off; -- 分散キー・ソートキーは設定されていない # select * from pg_table_def where (distkey = true or sortkey <> …