Menu Object - GetRowsWebAccessTranslated Method Slowest to execute as per PDT

Running PDT on Server trace log we see the below:

Object Name Method Name Frequency Total Execution Time (ms) Average Execution Time (ms) %-Freq Exceeds MS Threshold Longest (ms) Least (ms) Type %-Time
Menu GetRowsWebAccessTranslated 311 87274858 280626 9.66 True 2182722 3013 Ice:BO 0.00

This is for Epicor ERP 10.2.100.9 with 185 companies.

Has anybody seen this before? I couldn’t find reference to it in the release notes and so not sure whether it has been an issue that was resolved or is it something unusual only happening to my environment.

Screenshot output of PDT

Indicates the average execution time is 547,897ms, though the server is otherwise functioning fine.

Any input/comment will be appreciated.

Excerpt from the Server logs shows some complex logic for multiple rows of ice.security table

<Op Utc="2018-08-31T11:42:57.5884917Z" act="Ice:BO:Menu/MenuSvcContract/GetRowsWebAccessTranslated" dur="4263.3284" cli="::1:57125" usr="manager" machine="TEST" pid="7960" tid="114">
  <Sql queries="1971" cacheHits="802" time="4105.9966" qryTypeCount="4" />
  <Sproc name="[Ice]._ZFW_Menu_GetRows" duration="141.5952" />
  <RowEvent table="Menu" method="AfterGetRows" rows="2371" duration="0.15280000000000002" />
  <TablesetEvent tsName="MenuTableset" method="AfterGetRows" duration="9.2944000000000013" />
  <RowCount tableset="MenuTableset" count="1968" />
  <EpiCommand hashCode="-1825340247071956711" queryType="SELECT,SELECT,SELECT" spid="60" table="[Ice].[Security]"><![CDATA[
SELECT 
    CASE WHEN ( EXISTS (SELECT 
        1 AS [C1]
        FROM [Ice].[Security] AS [Extent1]
        WHERE ([Extent1].[Company] = @p__linq__0) AND ([Extent1].[SecCode] = @p__linq__1) AND ([Extent1].[CustWebAvailable] = @p__linq__2)
    )) THEN cast(1 as bit) ELSE cast(0 as bit) END AS [C1]
    FROM  ( SELECT 1 AS X ) AS [SingleRowTable1]
]]></EpiCommand>
  <DBStatement type="Boolean" duration="5.0039" rowCount="1" hashCode="-1825340247071956711" dbContextId="eb61b181-2e5f-4a52-8683-3c9d213fd815" />
  <EpiCommand hashCode="-1825340247071956711" queryType="SELECT,SELECT,SELECT" spid="60" table="[Ice].[Security]"><![CDATA[
SELECT 
    CASE WHEN ( EXISTS (SELECT 
        1 AS [C1]
        FROM [Ice].[Security] AS [Extent1]
        WHERE ([Extent1].[Company] = @p__linq__0) AND ([Extent1].[SecCode] = @p__linq__1) AND ([Extent1].[CustWebAvailable] = @p__linq__2)
    )) THEN cast(1 as bit) ELSE cast(0 as bit) END AS [C1]
    FROM  ( SELECT 1 AS X ) AS [SingleRowTable1]
]]></EpiCommand>
  <DBStatement type="Boolean" duration="4.7201" rowCount="1" hashCode="-1825340247071956711" dbContextId="eb61b181-2e5f-4a52-8683-3c9d213fd815" />
  <EpiCommand hashCode="-1825340247071956711" queryType="SELECT,SELECT,SELECT" spid="60" table="[Ice].[Security]"><![CDATA[
SELECT 
    CASE WHEN ( EXISTS (SELECT 
        1 AS [C1]
        FROM [Ice].[Security] AS [Extent1]
        WHERE ([Extent1].[Company] = @p__linq__0) AND ([Extent1].[SecCode] = @p__linq__1) AND ([Extent1].[CustWebAvailable] = @p__linq__2)
    )) THEN cast(1 as bit) ELSE cast(0 as bit) END AS [C1]
    FROM  ( SELECT 1 AS X ) AS [SingleRowTable1]
]]></EpiCommand>

@Rich, kindly do check this one as well, though this seems not to be in the framework.

Case No. CS0001138106