Lo farei volentieri ma sono veramente molte viste innestate
La query principale comprende 13 viste in join le quali a loro volta ne avranno altre 2 o 3 innestate.
Provo a riportare una prova di poco fa.
Se assegno un nome t1 alla vista principale nella vista VIEW1 tipo
select
t1.id
,t1.idA
,t1.idB
,t2.value
from vMain t1
Left outer join dbo.v2 on dbo.t1.id = v2.id
where t1.id = 1
e poi faccio
select * from VIEW1 for system_time as of '2020-01-01'
il value corrisponde al valore del 01/01/2020.
Pero' non posso lasciare il where t1.id = 1
Quindi se tolgo il where t1.id=1 ed eseguo
select * from VIEW1 for system_time as of '2020-01-01'
where t1.idA=100 AND t1.idB= 99
Ottengo l'errore di query processor per esaurimento risorse.
E qui potrei lavorare di indici che forse risolvo
Se invece eseguo la query
select
vMain.id
,vMain.idA
,vMain.idB
,v2.value
from vMain for system_time as of '2020-01-01'
Left outer join dbo.v2 on dbo.vMain.id = v2.id
where vMain.idA =100 and vMain.idB=99
Value ha il valore di oggi e non quello del 01/01/2020
Con altre query analoghe non ho questo problema