Share via


FIM Troubleshooting: FIMMA Export is Slow

Issue

Export on the FIM MA completes successfully, but only after several hours. The objects to be updated were all EREs, and there were around 2,000 updates total.

Troubleshooting

SQL Profiler trace during export revealed the EVALUATENEWREQUESTS high level proc was consuming most of the SQL resources during the export.

SELECT DISTINCT

[statement].[StatementKey] AS N'StatementKey',

[SetX].[ObjectKey] AS N'ObjectKey',

[SetX].[ObjectTypeKey] AS N'ObjectTypeKey'

INTO #calculateRequestDereferencedSetTransitions_DereferencedSet

FROM [fim].[ObjectValueReference] AS [SetX]

INNER JOIN [fim].[MembershipConditionStatement] AS [statement]

ON [SetX].[ObjectKey] = [statement].[DereferencedValueObjectKey]

INNER JOIN [fim].[MembershipCondition_x_MembershipConditionStatement] AS [membershipCondition]

ON [statement].[StatementKey] = [membershipCondition].[StatementKey]

INNER JOIN [fim].[SetMembershipCondition] AS [setMembershipCondition]

ON [membershipCondition].[MembershipConditionKey] = [setMembershipCondition].[MembershipConditionKey]

ORDER BY

[statement].[StatementKey],

[SetX].[ObjectKey],

[SetX].[ObjectTypeKey];

in particular, the "order by" section makes this query very resource intensive, since, in this case, it was sorting around 4,000,000 records.

Resolution

The resolution was two-fold.

  1. The customer increased the RAM in the SQL server from 48 GB to 64 GB, and saw a performance improvement.
  2. Additionally, the customer was on an older FIM Version (4.0.3561.2). Since version 4.0.3573.2 rollup includes the added feature of asynchronous export, as well as asynchronous request evaluation (http://support.microsoft.com/kb/2417774) We expect to see improved performance by upgrading to the latest version of FIM 2010 (4.0.3644).

References

http://support.microsoft.com/kb/2417774

Below is a snippet from the linked KB above, with verbiage directly addressing the issue:

“The hotfix adds support for an asynchronous request evaluation mode for requests that are created by the synchronization engine account. When the new mode is enabled, the FIM MA providesa preliminary response to the synchronization engine for the export operation. This happens as soon as the request is created but before it is evaluated by the FIM Service. The request is queued in the FIM service for full evaluation through a set of workerthreads in an asynchronous manner. At the same time, the synchronization engine feeds additional requests for export into the FIM MA. When the requests are being processed by the FIM Service, they are left in Escrow state until the FIM service can confirmtheir processing status. Asynchronous request processing is available only for requests that are generated by the FIM MA. All other requests continue to be executed through the regular process."