Which version of Access Analyzer do you have?
Access Analyzer 12.0
What is a one sentence summary of your feature request?
Pre-filter external users before calculating effective rights in SP_ExternalAccess to prevent tempdb exhaustion at scale.
Please describe your idea in detail. What is your problem, why do you feel this idea is the best solution, etc.
tempdb Filling Up After the recursion fix, SP_ExternalAccess can now run but it’s filling tempdb with ~640 GB of data after 17 hours and still not completing.
Root cause: SA_SPAA_EffectiveAccessView uses a CROSS APPLY to SA_SPAA_GetEffectiveRights for every SP resource in the environment.
That function expands group memberships and calculates permissions for every trustee.
The external user filter (#ext) is applied after all that work is done SQL Server can’t push the filter down into the function.
With 1,311 site collections, this means millions of function calls stack up in tempdb before a single result row comes back.
This is not a regression from the recursion fix.
The expensive queries flagged were not touched by the fix.
The functions that were changed (SA_SPAA_GetOwnerPermissions, SA_SPAA_GetTrusteePermissionSource) are actually cheaper now and don’t appear in the expensive query list.
Correct architectural fix: Filter for resources that have external users in the raw permissions tables first, then run the expensive calculation only on those resources.
This is a significant architectural change to the job/view it is a feature/enhancement request, not a bug fix.
How do you currently solve the challenges you have by not having this feature?
Expanding tempdb — resizing tempdb and its log files prevents the job from crashing the server, but the job still runs for 17+ hours and does not complete.
Not running the job — customers with large SharePoint environments effectively cannot use SP_ExternalAccess at all.
Result: External access reporting is unavailable.