У нас есть 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