For the project I'm on, we have a component for integration between Dynamics CRM and SharePoint 2013 that's been developed offshore, and I'm currently working on improving the performance of the application. I have no prior experience working with SharePoint, but I'm starting to get familiar with the basics of the .NET CSOM.
One of the bottlenecks we've discovered is the way this component handles search and filtering of documents. It compiles a list of tags and metadata from all of the documents found in the document library. However, it does this by making SOAP calls to the
GetTagTermsOnUrl method of the
SocialDataService service (using the
socialdataservice.asmx endpoint, which I've noticed is deprecated in SP 2013, but that's not a priority issue now). It makes this call for each individual document. Each call is only a few hundred milliseconds, but when there are hundreds of documents, this adds up to unacceptable load times.
Is there any way to batch these calls? Or is there perhaps a method in the CSOM API or through some other mechanism, that can retrieve all social terms in a particular document library?