1
5つのテーブルがあり、結果を得るためにビューを作成しようとしています。既存のクエリの最適化
以下は、正常に動作しているビューです。
私は提案が必要です。この方法でこのクエリを書くのがよい方法ですか、それともより良い方法で最適化することができますか?
SELECT p.Pid, hc.hcid, hc.Accomodation, ghc.ghcid, ghc.ProductFeatures, wp.existing, wp.acute, mc.cardiaccover, mc.cardiaclimitationperiod
FROM TableA p
LEFT JOIN TableB hc
ON p.pid = hc.pid
LEFT JOIN TableC ghc
ON p.pid = ghc.pid
LEFT JOIN (SELECT *
FROM (SELECT hcid,
title,
wperiodvalue + '-' + CASE WHEN
wperiodvalue > 1 THEN
unit +
's' ELSE
unit END wperiod
FROM TableD) d
PIVOT (Max(wperiod)
FOR title IN (acute,
existing
)) piv1) wp
ON hc.hcid = wp.hcid
LEFT JOIN (SELECT *
FROM (SELECT hcid,
title + col new_col,
value
FROM TableE
CROSS apply (VALUES (cover,
'Cover'),
(Cast(limitationperiod AS
VARCHAR
(10)),
'LimitationPeriod')) x (value, col
)) d
PIVOT (Max(value)
FOR new_col IN (cardiaccover,
cardiaclimitationperiod,
cataracteyelenscover,
cataracteyelenslimitationperiod
)) piv2) mc
ON hc.hcid = mc.hcid
いずれかの提案があります。
おかげ
使用しているDBMSにタグを付けます。 (異なるdbms製品は、異なる方法で最適化されます。) – jarlh