SQL Serverでサブクエリとウィンドウ関数のパフォーマンスを比較した.用いたデータベースはHeatStrokeDBで,熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するで作成したものである.
比較するツールはSET STATISTCS PROFILE ONコマンドである.クエリストアは筆者の環境では機能しなかった.
Co-evolution of human and technology
SQL Serverでサブクエリとウィンドウ関数のパフォーマンスを比較した.用いたデータベースはHeatStrokeDBで,熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するで作成したものである.
比較するツールはSET STATISTCS PROFILE ONコマンドである.クエリストアは筆者の環境では機能しなかった.
SQL Serverのクエリのコストを評価するには実行計画を取得する必要がある.最近のバージョンではクエリストアでクエリのコストを視覚化することが可能となった.今回はSQL Serverの実行計画を取得する従来の方法と,クエリストアを表示する方法を紹介する.元にした記事は日平均気温の過去30日間の移動平均をSQL Serverのウィンドウ関数を用いて計算するである.
熱中症の搬送人員数が月平均気温と負の相関があるとの情報を得た.普段涼しい地域ほど日最高気温の上昇に弱いという意味である.普段涼しいということを表現するには過去30日間の日平均気温の平均を取ればよいだろうと判断した.こうなるとSQL Serverのウィンドウ関数の出番である.
SQL Server でウィンドウ関数を使い,1行前の行を取得するではウィンドウ関数を用いて1行前の行を取得した.今回は RANK 関数,NTILE 関数を用いて順位,四分位を得る.
SQL Server でウィンドウ関数を使い,1行前の行を取得するではウィンドウ関数を用いて1行前の行を取得した.今回は LAG 関数を用いて1行前の行を取得する.
ウィンドウ関数は比較的新しい技術である.筆者は正直,SQL が苦手だ.IPA の試験が終わったのでデータベース関連の勉強を再開している.