文字列を集計的に結合するには

| コメント(0) | トラックバック(0)

数値は SUM() 関数で集計、文字列を集計的に結合するには( Transact-SQL で aggregate concatenation )

30要素のマスタから出力フラグの要素を取り出して、それに対するデータを読み出して、最大25カラムの帳票を出力する。帳票出力は整形の都合上1カラムに文字列結合する。
すべてのカラムに対して30回づつ条件判断をさせるので、明らかにパフォーマンスが悪い。(平均15ms*25カラム)。帳票の行数は数千行なので、とんでもない。SQLのパフォーマンスをよくしたいとか言われてヒントになりそうなモノをメモ
テーブル変数に出力フラグの立っているマスタ要素をINSERTして、CASE式でデータを関連づける(1要素1行)。んで、テーブル変数の行数分だけ整形して出力すればOK?

マスタ要素とデータを関連づけるループがパフォーマンスに影響でそうかも…。コード書いてみないと何ともできんが、5000行を超えるストアドに手を入れるのは泣きそうね。

トラックバック(0)

トラックバックURL: http://mt.my-moon.net/mt-tb.cgi/2946

コメントする

カテゴリアーカイブ

アーカイブ

このブログ記事について

このページは、すずね。が2007年9月15日 01:59に書いたブログ記事です。

ひとつ前のブログ記事は「頭の中にプログラムを入れる」です。

次のブログ記事は「マシン語ってどんな感じか知りたくなった方へ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。