Problemi con query su tabelle temporali

di il
2 risposte

Problemi con query su tabelle temporali

Ciao a tutti
Sto usando le tabelle temporali per ottenere lo storico delle variazioni di valori di alcune tabelle e gestire di conseguenza la revisione di alcuni documenti risultato di viste annidate.

Se per tutte le viste che ho realizzato finora non ho incontrato problemi, in una non riesco ad ottenere il risultato temporale corretto. La query mi restituisce sempre l'ultimo valore odierno e non quello della data specificata.
Mi domando se ci sono dei limiti di annidamento quando vengono usate le tabelle temporali o se magari ci sono dei limiti di altro tipo.

Purtroppo non posso riportare il testo di tutte le query.

2 Risposte

  • Re: Problemi con query su tabelle temporali

    Salve,
    riesci a riprodurre il problema in uno scenario di esempio che tu possa qui indicare?
    salutoni romagnoli
    --
    Andrea
  • Re: Problemi con query su tabelle temporali

    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
Devi accedere o registrarti per scrivere nel forum
2 risposte