私は大きなデータセットで作業しています。クエリを最適化する必要があります。私はビューabc_viewを持っています。以下のクエリビューは4回使用されます。したがって、ビューが実行されるたびに複雑なロジックが含まれます。ビューが1回だけ実行するクエリを作成するにはどうすればよいですか。複数回のビュー実行
Select * from TableA a
join abc_view v on(a.col1=v.line)
where v.type='abc'
union all
Select * from TableA a
join abc_view v on(a.col1=v.group)
where v.type='bcd'
union all
Select * from TableA a
join abc_view v on(a.col1=v.cat)
where v.type='cde'
union all
Select * from TableA a
join abc_view v on(a.col1=v.test)
where v.type='def'
クエリ実行に約5分かかります。私はabc_viewビューからテーブルを作成し、そのテーブルをクエリで使用して最適化する必要があると思ったのですか?
私に最適化クエリを提案します。
あなたが参加するすべての列のインデックスを追加できるように、一時テーブルを作成することがあります。 – Barmar
UNION ALLを削除し、各テンポラリ・テーブルを使用して各クエリ・データを格納し、そのテンポラリ・テーブルからデータを選択してストアド・プロシージャを作成します。 – Susang