I wrote a utility that sync's our Oracle HR database of employees into SharePoint profiles. It loads all 150,000 employees from Oracle into an array, for each employee it retrieves or creates a SharePoint profile, updates fields from that Oracle source and commits changes into SharePoint User profile, all using SharePoint API.

The problem is - it's very slow. Updating 150,000 profiles took almost 3 days and according to the logs it takes 3-6 seconds to simply commit changes into SharePoint for a single user.

I started up a SQL Profiler and what I see is - for each inserted/updated user there are hundreds of stored procs called for Activity Feeds (updating colleagues feeds, I guess) and some User Profile timer jobs as well. No surprise it's so slow.

Now the question - is there a way to diagrammatically disable/postpone activity feed sync and user profile sync jobs during the run of the utility. I haven't found how to do that and any help would be much appreciated.


There is a PowerShell package that manages SharePoint PowerShell Timer Jobs. But I think there's a more fundamental performance issue that needs to be addressed - you may want to follow up on this recent post - SharePoint 2010 User Profile Import Performance Optimization.

Another post that may prove helpful - Best practices for people and profiles (SharePoint Server 2010).


I am not sure if disabling the timer jobs would solve this issue, but you can check this blog about getting timer job reference. SPJobDefinition.IsDisabled = true, should disable the timer job.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.