Problema de rendimiento de escritura diferida cuando la seguridad de las celdas está habilitada en SQL Server Analysis Services

Este artículo le ayuda a solucionar el problema de rendimiento de escritura diferida que se produce cuando la seguridad de las celdas está habilitada en SQL Server Analysis Services.

Versión original del producto: SQL Server 2012 Analysis Services
Número de KB original: 2747616

Síntomas

Supongamos que ejecuta Microsoft SQL Server Analysis Services (SSAS) con un rol para el que está habilitada la seguridad de las celdas. Al intentar ejecutar una instrucción UPDATE CUBE Multidimensional Expressions (MDX), la ejecución de la instrucción puede tardar más tiempo en ejecutarse que para un rol para el que no está habilitada la seguridad de las celdas.

Causa

Este comportamiento es una característica del diseño de la aplicación. Cuando se habilita la seguridad de las celdas, el motor de Analysis Services ejecuta las consultas en modo celda por celda. Si la operación de escritura diferida realiza la asignación en un nivel alto, el espacio de las celdas de nivel hoja será grande.

Nota:

El espacio no es el número de filas de la tabla de hechos. El espacio es el espacio de combinación cruzada completo de todos los atributos de granularidad de dimensión. Se tarda mucho tiempo en enumerar esas celdas una por una para comprobar la seguridad de las celdas.

Solución alternativa

Para evitar este problema, utilice uno de los métodos siguientes.

  • Método 1

    Coloque las medidas que deben protegerse en un cubo independiente e implemente la seguridad de escritura de nivel de cubo en el rol.

    Nota:

    El rendimiento cuando se usa este método es tan rápido como cuando la consulta se ejecuta con un rol de administrador. Sin embargo, el diseño del cubo se vuelve complejo y tiene que crear cubos virtuales para usar grupos de medida vinculados con el fin de devolver las distintas medidas en una sola consulta MDX. Además, al realizar la operación de escritura diferida, debe crear una consulta MDX que use el nombre de cubo correcto en función de la medida de reescritura.

  • Método 2

    Realice la operación de escritura diferida en el nivel de granularidad más bajo de un miembro determinado. No se puede asignar para muchos miembros de granularidad detallados.

    Nota:

    Es posible que tenga que crear miembros ficticios en tablas de dimensiones marcadas como miembros de ajuste en cada dimensión para admitir la operación de escritura diferida.