レポートで使用されるクエリを最適化したいと考えています。残念ながら、レポートを変更することはできないため、特定の形式のデータセットを提供する必要があります。
したがって、次のようなテーブルがあるとしましょう (実際には、25 列と 20k 行があります)。
Name Description Price MiscColumn1 MiscColumn2
Tea test description 10 misc1 misc2
Coffee test desc 20 misc3 misc4
Water test 20 misc1 misc2
したがって、このデータセットを次のように変換する必要があります。
Type Name Description Price MiscColumn1 MiscColumn2
1 Tea test description NULL NULL NULL
1 Coffee test desc NULL NULL NULL
1 Water test NULL NULL NULL
2 NULL NULL 10 NULL NULL
2 NULL NULL 20 NULL NULL
3 NULL NULL NULL misc1 misc2
3 NULL NULL NULL misc3 misc4
したがって、基本的に必要なことは、3 つの異なるレコードのグループを選択してデータセットに戻すことです。
私が現在行っていることは次のとおりです。
Create #tempTable
そして、次のように 3 つの個別の選択を行います。
insert into #tempTable (Name, Description)
select distinct Name, DEscription from myTable
insert into #tempTable (Price)
select distinct Price from myTable
しかし、それは非常に遅く、データの処理を完了するのに最大 5 秒かかることがあります。
また、UNION を使用しようとしましたが、パフォーマンスの向上は得られませんでした。