Hi All,
This blog is on some
Consejos de rendimiento
en
Vista de cálculo de SAP HANA
.
Nuestro objetivo básico al migrar a SAP HANA es el rendimiento y si el rendimiento no es bueno, entonces no tiene sentido el cambio. Crear vistas de información en HANA no es un gran problema, sin embargo, mantener su rendimiento es lo que requiere tiempo y comprensión de las diversas opciones que SAP HANA proporciona.
En primer lugar está el motor de SAP HANA, HANA proporciona tres motores
Motor de JOIN, Motor OLAP y Motor de cálculo
. Además de esto, hay un
Optimizador de consultas de SAP HANA
cuyo trabajo es realmente entregar datos a motores separados dependiendo de cuál motor funcione mejor para esa consulta.
Al construir Vistas de cálculo, es útil tener en cuenta qué motor se utiliza predominantemente. Para dar un ejemplo, si la Vista de cálculo es de tipo Dimensión, el procesamiento se dirige al Motor de JOIN, sin embargo, si hay alguna columna calculada, el procesamiento se dirige al Motor de cálculo que se encuentra sobre el Motor de JOIN. De manera similar, si la Vista es de tipo CUBO con Join de Estrella, el procesamiento se dirige al Motor OLAP.
Hay muchas capacidades superpuestas en los motores y para identificar qué motor(es) se llama(n) realmente en cada paso, podemos usar
Herramienta de Plan de explicación
(explicado a continuación)
Algunos puntos que se pueden tener en cuenta al hacer modelado
-
Trate de no transferir grandes conjuntos de resultados entre la base de datos HANA y las aplicaciones cliente (por ejemplo, Análisis para Office)
-
Siempre intente hacer
cálculos después de la agregación
(La agregación elimina resultados duplicados o los agrega antes de mostrarlos)
-
Otra cosa es - trate de
evitar expresiones complejas en columnas calculadas
, uno puede empujar esto hacia abajo en el modelo mismo
-
Hacer
JOIN en claves o columnas indexadas
ayuda mucho en el rendimiento
-
Lo más importante es
Filtrar datos lo antes posible
utilizando parámetros de entrada, Privilegios analíticos, Agregaciones, etc.
-
También intente
reducir el flujo de datos entre vistas
.
Aparte de esto, se puede usar
Ejecutar en
propiedad en las vistas (presente en la pestaña de propiedades de la vista), si lo configura en
Motor SQL
entonces el Motor de cálculo intenta generar declaraciones SQL para cada nodo y luego crear una consulta SQL grande que luego se pasa a la interfaz de consulta SQL (que tiene un optimizador SQL estándar) que ayuda a optimizar la consulta SQL - uno es que genera una secuencia de JOIN óptima.
Para tener esto - el Optimizador SQL funciona y debe asegurarse de que no use ninguna función de almacenamiento de columnas en filtros o columnas calculadas (por ejemplo, date(), time())
Hablaré sobre la optimización de scripts SQL en otro blog.
A continuación se detallan algunas herramientas que ayudan a monitorear el rendimiento
-
Herramienta de Plan de explicación
: En esto, puede ver qué paso de ejecución usa qué motor, a través de esto puede evitar llamar a múltiples motores ajustando nodos en las vistas, por lo tanto, proporciona un buen rendimiento.
-
Herramienta de Visualización de Plan
: Me gusta mucho esta herramienta ya que brinda una imagen completa de cómo fluye los datos en una vista, cuántas filas de datos se mueven de un nodo a otro.
-
Herramienta de Ejecución de Plan
: En esto, puede ver el tiempo de ejecución - cuál nodo está tomando el tiempo máximo, cuántas tablas se accedieron, cuántos registros, etc. Recomiendo ver esto cuando esté ejecutando sus vistas.
-
Vista de línea de tiempo
: Esto proporciona marcas de tiempo para cada paso de ejecución de SQL. También es una buena vista para ver qué paso está tomando más tiempo.
Finalmente, para ver estas herramientas, debe generar realmente la consulta SQL de la Vista, que puede generar haciendo clic derecho en la vista y haciendo clic en la opción
Generar Select SQL.
Ahora en el menú contextual tiene opciones para seleccionar diferentes herramientas (como se muestra a continuación).
Espero que esto te ayude cuando te preocupe