After upgrading to Sitecore 9 our client experienced a large decrease in performance when publishing large amouts of items. Fx. the whole site, which is a common thing to do for them.
My unual publising strategy is selecting an item and publish all children below that. Works very well on whole websites.
{% asset_img “normal-publish.png” “Normal all children publishing” %}
But the client used a different strategy. By selecting all children and related items (They wanted to be sure that the media items used on the site were published as well).
{% asset_img “normal-publish.png” “All children + related items publishing” %}
The worked ok for smaller amounts of items, but around 70.000 - 80.000 items the performance decreased drastically (The poores measured at 2 items/30 seconds)
I created a support ticket to hear if there is something to do about the performance.
The fix was very simple. Just add the hidden setting DeepScan with a value false to the appropriate config file you your life will be happy again.
<processor type="Sitecore.Publishing.Pipelines.GetItemReferences.AddItemLinkReferences, Sitecore.Kernel"> <DeepScan>false</DeepScan> </processor>
Thanks goes to Alexey Tupkalo and all his collgues at Sitecore Helpdesk. You guys do a fantastisk job :)