タグ

ブックマーク / tgk.hatenadiary.org (1)

  • Teradataはselect句が返す列数を減らすと速くなる - 極北データモデリング

    Teradataで3以上のテーブルを結合する場合、必ず中間結果のスプールへの(つまりディスクへの)書き出しが発生する。 例えばa, b, cの3を結合するなら、aとbの結合結果をスプールに書いて、次にスプールとcを結合する。 b, cが件数の非常に少ないテーブルであっても、スプールを使うのを止めない。 ということは、中間結果のレコード長を減らせばスプールに書き出すバイト数も減少するので、DBMS内の処理時間を大幅に短縮できる。 100万件のトランザクション t に100件と10件のマスタ m1, m2 を結合するSQLを考えてみる。 それぞれのマスタには { コード, 名称, カナ名称, 短縮名, ... } といった列があり、いまマスタから取得したいのは短縮名だけだとする。 PostgreSQLなら、以下の a) b) はほとんど同じ速さで処理されるだろう。 a) select *

    Teradataはselect句が返す列数を減らすと速くなる - 極北データモデリング
  • 1