Operations Log

Performance Optimization of a Document Management System

Loading time of any web page is the impression of overall functioning of the website. It needs to be optimized and page load should be faster for best productive results. One of our clients had an energy-focused private equity firm website which was taking too much time to load. The web page of this document management system was taking up to 16 seconds to load. The Page had user control for document navigation menu and content of page itself.

Content of the page had full document listings for previous two to three years and a block for latest document headings with view and download links. Client requested to reduce the loading time from 16 second to the least we could without disturbing page’s contents and permissions.

Problem:

Besides this performance issue, complexity of the code was another big challenge to cope with. ASP.NET framework was written well but its usage was very bad and complex.

There were users of different role types. For each user, it loaded huge number of documents and then for each document it loaded category, sub-category and permissions to display. If a category or sub-category is added previously for a document, then its verification was done to know exactly whether it is added or not. It caused a cost involved to check category for each document again and again for repetitive categories.

After searching a document, permissions for the display of that document, category and sub-category had been checked. Everything mentioned above was handled in the code and usage of framework made the website more slower.

Solution:

vteams had to propose a solution from within framework because framework could not simply by-passed. Number of calls and their dependent calls to data base had to be removed for the number of documents loaded for each user. Extra looping for category look ups and permissions was avoided on the basis of number of documents found per user.

vteams also added a Store Procedure. This procedure was responsible to get all the associated categories with a number of documents and minimum repetitions for a category. It was also responsible to get dependent child permissions on document, category and sub category to display.

Conclusion:

By doing so, vteams was able to reduce the loading time from 16 seconds to only 2 seconds in just two database calls.