Ho una funzione (create in CLR e caricata in SQL SERVER) che fa dei calcoli abbastanza lunghi e crea una tabella adhoc. (Table valued function)
Il tempo di esecuzione è abbastanza, ma i dati servono solo una volta l'ora circa.
Così ho pensato di pre-eseguire la CLR un ora prima.
Mi servirebbe crearea una materialized view come fa Oracle per mantenere i dati in memoria.
L'idea originale era fare usare l'Agent job e fare in questo modo
L'operazione è rifutata perchè dice che il contesto corrente è già occupato (nonstante nella CLR abbia eliminato l'uso della context-connection e creata una nuova connessione al DB).codice:drop table tb; select * into tb from spvc_MiaProc();
Se invece faccio una view
ll tutto funziona.codice:create view v1 as select * into tb from spvc_MiaProc();
Ho letto su internet delle IndexedViews, ma al momento di creare il clustered index mi dice che non posso creare indici su contenuti generati da una CLR.
Insomma, come faccio a manterene i dati di questa funzione in memoria??

Rispondi quotando