Compartir a través de


Borrar las cachés de Analysis Services

Analysis Services almacena en caché los datos para aumentar el rendimiento de las consultas. En este tema se proporcionan recomendaciones para usar el comando ClearCache de XMLA para borrar las memorias caché que se crearon en respuesta a una consulta MDX. Los efectos de ejecutar ClearCache varían en función de si se usa un modelo tabular o multidimensional.

Cuándo borrar la memoria caché de los modelos multidimensionales

En el caso de las bases de datos multidimensionales, Analysis Services compila cachés en el motor de fórmulas al evaluar un cálculo y en el motor de almacenamiento para los resultados de las consultas de dimensión y las consultas de grupo de medida. Las consultas de medidas de grupo se producen cuando el motor de fórmulas necesita datos de medida de una coordenada de celda o subcubo. Las consultas de dimensión se producen al consultar jerarquías no naturales y al aplicar autoexists.

Se recomienda borrar la memoria caché al realizar pruebas de rendimiento. Al borrar la memoria caché entre ejecuciones de pruebas, asegúrese de que el almacenamiento en caché no sesga los resultados de las pruebas que mida el impacto de un cambio de diseño de consulta.

Cuándo borrar la memoria caché de los modelos tabulares

Los modelos tabulares se almacenan generalmente en memoria, donde se ejecutan agregaciones y otros cálculos en el momento en que se ejecuta una consulta. Por lo tanto, el comando ClearCache tiene un efecto limitado en los modelos tabulares. En el caso de un modelo tabular, los datos se pueden agregar a las memorias caché de Analysis Services si las consultas MDX se ejecutan en él. En concreto, las medidas DAX a las que hacen referencia las operaciones MDX y autoexists pueden almacenar en caché los resultados en la caché de fórmulas y la caché de dimensiones, respectivamente. Sin embargo, tenga en cuenta que las jerarquías no naturales y las consultas de grupo de medida no almacenan en caché los resultados en el motor de almacenamiento. Además, es importante reconocer que las consultas DAX no almacenan en caché los resultados en la fórmula y el motor de almacenamiento. En la medida en que existan cachés como resultado de las consultas MDX, la ejecución de ClearCache en un modelo tabular invalidará los datos almacenados en caché del sistema.

La ejecución de ClearCache también limpiará las cachés alojadas en memoria en el motor de análisis en memoria de xVelocity (VertiPaq). El motor xVelocity mantiene un pequeño conjunto de resultados almacenados en caché. Al ejecutar ClearCache, estas memorias caché se invalidarán en el motor xVelocity.

Por último, al ejecutar ClearCache también se quitarán los datos residuales que quedan en la memoria cuando se vuelva a configurar un modelo tabular para el DirectQuery modo. Esto es especialmente importante si el modelo contiene datos confidenciales sujetos a controles estrictos. En este caso, ejecutar ClearCache es una acción precautoria que puede realizar para asegurarse de que los datos confidenciales solo existen cuando se espera que sea. Si usa Management Studio para implementar el modelo y cambiar el modo de consulta, es necesario borrar la memoria caché manualmente. En cambio, el uso de SQL Server Data Tools para especificar DirectQuery en el modelo y las particiones borrará automáticamente la memoria caché al cambiar el modelo para usar ese modo de consulta.

En comparación con las recomendaciones para borrar las memorias caché de modelos multidimensionales durante las pruebas de rendimiento, no hay ninguna recomendación amplia para borrar las memorias caché de modelos tabulares. Si no administra la implementación de un modelo tabular que contiene datos confidenciales, no hay ninguna tarea administrativa específica que requiera borrar la memoria caché.

Borrar la memoria caché de los modelos de Analysis Services

Para borrar la memoria caché, use XMLA y SQL Server Management Studio. Puede borrar la memoria caché en el nivel de base de datos, cubo, dimensión o tabla o grupo de medida. Los pasos siguientes para borrar la memoria caché en el nivel de base de datos se aplican tanto a modelos multidimensionales como a modelos tabulares.

Nota:

Las pruebas de rendimiento rigurosas pueden requerir un enfoque más completo para borrar la memoria caché. Para obtener instrucciones sobre cómo vaciar las memorias caché del sistema de archivos y Analysis Services, consulte la sección sobre cómo borrar cachés en la Guía de operaciones de SQL Server 2008 R2 Analysis Services.

Para los modelos multidimensionales y tabulares, borrar algunas de estas cachés puede ser un proceso de dos pasos que consiste en invalidar la memoria caché cuando se ejecuta ClearCache, seguido de vaciar la memoria caché cuando se recibe la siguiente consulta. Una reducción del consumo de memoria solo será evidente después de que la memoria caché esté realmente vacía.

Borrar la caché requiere que asigne un identificador de objeto a la ClearCache instrucción en una consulta XMLA. En el primer paso de este tema se explica cómo obtener un identificador de objeto.

Paso 1: Obtener el identificador de objeto

  1. En Management Studio, haga clic con el botón derecho en un objeto, seleccione Propiedades y copie el valor de la propiedad ID en el panel Propiedades . Este enfoque funciona para la base de datos, el cubo, la dimensión o la tabla.

  2. Para obtener el identificador del grupo de medida, haga clic con el botón derecho en el grupo de medida y seleccione Script Measure Group As (Script Measure Group As). Elija Crear o Modificar y envíe la consulta a una ventana. El identificador del grupo de medida estará visible en la definición de objeto. Copie el identificador de la definición de objeto.

Paso 2: Ejecutar la consulta

  1. En Management Studio, haga clic con el botón derecho en una base de datos, seleccione Nueva consulta y seleccione XMLA.

  2. Copie el ejemplo de código siguiente en la ventana de consulta XMLA. Cambie DatabaseID al identificador de la base de datos en la conexión actual.

    <ClearCache xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
      <Object>  
        <DatabaseID> Adventure Works DW Multidimensional</DatabaseID>  
      </Object>  
    </ClearCache>  
    
    

    Como alternativa, puede especificar una ruta de acceso de un objeto secundario, como un grupo de medida, para borrar la memoria caché solo para ese objeto.

    <ClearCache xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
      <Object>  
        <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>  
            <CubeID>Adventure Works</CubeID>  
            <MeasureGroupID>Fact Currency Rate</MeasureGroupID>  
      </Object>  
    </ClearCache>  
    
  3. Presione F5 para ejecutar la consulta. Debería ver el siguiente resultado:

    <return xmlns="urn:schemas-microsoft-com:xml-analysis">  
      <root xmlns="urn:schemas-microsoft-com:xml-analysis:empty" />  
    </return>  
    

Véase también

Guionizar tareas administrativas en Analysis Services
Supervisión de una instancia de Analysis Services