Progettazione di stored procedure

Sia il modello di oggetti amministrativo AMO (Analysis Management Objects) sia il modello di oggetti orientato al client Microsoft ADO MD (ActiveX® Data Objects Multidimensional) sono disponibili nelle stored procedure.

Le stored procedure devono essere in un determinato ambito (il server o il database) per essere visibili nel livello MDX (Multidimensional Expressions) e quindi essere chiamate. Tuttavia, dopo che una stored procedure viene chiamata, il suo ambito non viene limitato alle azioni consentite dal relativo padre. Una stored procedure può infatti apportare cambiamenti o modifiche in qualsiasi punto del server ed è soggetta solo a limitazioni di protezione del processo utente che l'ha richiamata o a limitazioni alla transazione nella quale è in esecuzione.

Le procedure nell'ambito del server sono disponibili in tutti i contesti del server. Le stored procedure nell'ambito del database sono visibili solo nel contesto del database nel quale sono state definite.

Come qualsiasi altra funzione MDX, una stored procedure deve essere risolta prima che possa proseguire una sessione MDX. Le stored procedure bloccano le sessioni MDX durante l'esecuzione. A meno che non esista una ragione specifica per interrompere una sessione MDX con una interazione con l'utente in corso, è consigliabile evitare interazioni con l'utente, quali ad esempio le finestre di dialogo.

Assembly dipendenti

Tutti gli assembly dipendenti devono essere caricati in un'istanza di Analysis Services per essere individuati dalla funzionalità CLR (Common Language Runtime). In Analysis Services gli assembly dipendenti vengono archiviati nella stessa cartella dell'assembly principale. In questo modo la CLR risolve automaticamente tutti i riferimenti alle funzioni contenute in quegli assembly.