Problema di prestazioni di writeback quando la sicurezza delle celle è abilitata in SQL Server Analysis Services

Questo articolo consente di risolvere il problema di prestazioni di writeback che si verifica quando la sicurezza delle celle è abilitata in SQL Server Analysis Services.

Versione originale del prodotto: SQL Server Analysis Services 2012
Numero KB originale: 2747616

Sintomi

Si supponga di eseguire Microsoft SQL Server Analysis Services (SSAS) in un ruolo per il quale è abilitata la sicurezza delle celle. Quando si tenta di eseguire un'istruzione UPDATE CUBE MULTIDIMENSIONAL Expressions (MDX), l'esecuzione dell'istruzione potrebbe richiedere più tempo rispetto a un ruolo per il quale la sicurezza delle celle non è abilitata.

Causa

Si tratta di un comportamento legato alla progettazione del prodotto. Quando la sicurezza delle celle è abilitata, il motore di Analysis Services esegue le query in modalità cella per cella. Se l'operazione di writeback esegue l'allocazione a un livello elevato, lo spazio delle celle di livello foglia sarà grande.

Nota

Lo spazio non corrisponde al numero di righe nella tabella dei fatti. Lo spazio è lo spazio cross join completo di tutti gli attributi di granularità della dimensione. L'enumerazione delle celle una alla volta richiede molto tempo per controllare la sicurezza delle celle.

Soluzione alternativa

Per ovviare a questo problema, utilizzare uno dei seguenti metodi:

  • Metodo 1

    Inserire le misure che devono essere protette in un cubo separato e implementare la sicurezza di scrittura a livello di cubo nel ruolo.

    Nota

    Le prestazioni quando si usa questo metodo sono veloci come quando la query viene eseguita con un ruolo di amministratore. Tuttavia, la progettazione del cubo diventa complessa ed è necessario creare cubi virtuali per usare gruppi di misure collegati per restituire le diverse misure in una singola query MDX. Inoltre, quando si esegue l'operazione di writeback, è necessario creare una query MDX che usa il nome del cubo corretto in base alla misura writeback.

  • Metodo 2

    Eseguire l'operazione di writeback al livello di granularità più basso di un determinato membro. Non è possibile allocare per molti membri di granularità dettagliati.

    Nota

    Potrebbe essere necessario creare membri fittizi nelle tabelle delle dimensioni contrassegnati come membri di rettifica in ogni dimensione, per supportare l'operazione di writeback.