Skip to Content
0
Dec 10, 2013 at 03:07 AM

Understanding how BOBJ Explorer issues queries to HANA

42 Views

Hi all, just wanted to see if anyone had anything to add regarding the integration of BO Explorer connected to HANA. Starting to dive into a little more details in terms of trying to understand how InfoSpaces and ViewSets scale and also change the queries that are issued to HANA. This of course would be in support of trying to make the response time in the application as fast as possible. Since the code is produced by the tool directly, the only chance for improvement would be filtering the data and trying to process the model in the most effective manner.

In some cases I am finding that we are hitting serious roadblocks in performance where HANA will literally be at 100% CPU for up to 15 minutes while a single InfoSpace is processed, but then scaling back or removing a facet or two allows it to perform within a reasonable timeframe. As always, however there seems to be room for improvement and I found little information on SCN or otherwise on the web.

It looks like Explorer takes advantage of the GROUPING SETS with MULTIPLE RESULTS to produce the facets. The problem is, that I am not all too familiar with this technique. I can see SQL produced below, which is creating a grouping set according to each facet and the corresponding sort order, which makes sense. This specific InfoSpace is based on an Analytic View with a fact table of around 85 million records surrounded by a handful of attribute views, largest one being around 4 million. When I look at the explain plan (attached), the query performs reasonably under 3s, but I notice that there is activity in the Calc Engine which I can guess happens as a result of the Multiple result statement and the first result which provides some distinct value analysis along with the data.

SELECT "SOLD_TO" AS "ALIAS_B1C361C6" , "SIG" AS "ALIAS_000140B1" ,

"CUSTOMER_NAME" AS "ALIAS_3BB8F64C" , "SOLD_TO" AS "ALIAS_B1C361C6" ,

"VTEXT_2" AS "ALIAS_58A49976" , "PAPH2" AS "ALIAS_048619A9" , "VTEXT_1"

AS "ALIAS_58A49975" , "PAPH1" AS "ALIAS_048619A8" , "MATNR_T" AS

"ALIAS_5CEF3DD9" , "LVL3_NM" AS "ALIAS_4B61F44D" , "FPY_FLG" AS

"ALIAS_048A50D1" , "VTEXT_3" AS "ALIAS_58A49977" , "PAPH3" AS

"ALIAS_048619AA" , "FISCAL_YR_NUM" AS "ALIAS_591332E1" , "DIST_CHL" AS

"ALIAS_3FE4F66E" , "CLNDR_YR_MTH_NUM" AS "ALIAS_0F347DEE" ,

"ZZM_SOURCETYPE" AS "ALIAS_AE0F9C47" , "LVL4_NM" AS "ALIAS_4B6268AC" ,

"LVL5_NM" AS "ALIAS_4B62DD0B" , SUM("SALES") AS "ALIAS_864AB354"

FROM"_SYS_BIC"."Main.Analytics.Sales/AN_INTEGRATED_SALES"

WHERE ( ( "SALE_ITEM_GROUP_ID"= 'SRGP' ) AND ( "SIG"= 'SRGP' ) )

GROUP BY

GROUPING SETS LIMIT 26 MULTIPLE RESULTSETS (

(("SOLD_TO") ORDER BY ALIAS_864AB354 DESC ,ALIAS_B1C361C6 ASC ),

(("SIG") ORDER BY ALIAS_864AB354 DESC,ALIAS_000140B1 ASC ),

(("CUSTOMER_NAME", "SOLD_TO") ORDER BY

ALIAS_864AB354 DESC ,ALIAS_3BB8F64C ASC ),

(("VTEXT_2", "PAPH2") ORDER BY ALIAS_864AB354 DESC ,ALIAS_58A49976 ASC ),

(("VTEXT_1", "PAPH1") ORDER BY ALIAS_864AB354 DESC ,ALIAS_58A49975 ASC ),

(("MATNR_T") ORDER BYALIAS_864AB354 DESC ,ALIAS_5CEF3DD9 ASC ),

(("LVL3_NM") ORDER BY ALIAS_864AB354 DESC ,ALIAS_4B61F44D ASC ),

(("FPY_FLG") ORDER BY ALIAS_864AB354 DESC ,ALIAS_048A50D1 ASC ),

(("VTEXT_3", "PAPH3") ORDER BY ALIAS_864AB354 DESC ,ALIAS_58A49977 ASC ),

(("FISCAL_YR_NUM") ORDER BY ALIAS_864AB354 DESC ,ALIAS_591332E1 ASC ),

(("DIST_CHL") ORDER BY ALIAS_864AB354 DESC ,ALIAS_3FE4F66E ASC ),

(("CLNDR_YR_MTH_NUM") ORDER BY ALIAS_864AB354 DESC ,ALIAS_0F347DEE ASC ),

(("ZZM_SOURCETYPE") ORDER BY ALIAS_864AB354 DESC ,ALIAS_AE0F9C47 ASC ),

(("LVL4_NM") ORDER BY ALIAS_864AB354 DESC ,ALIAS_4B6268AC ASC ),

(("LVL5_NM") ORDER BY ALIAS_864AB354 DESC ,ALIAS_4B62DD0B ASC )

)

WITH PARAMETERS('locale'='en_US' )

Anyone have positive experience or any tuning tips for working with Explorer on HANA?

Regards,

Justin

Attachments

Explorer.JPG (55.5 kB)