Monday, 24 December 2012

MVC website performance

Faced with the challenge to improve the performance of our ASP MVC3 website, here is what I did:
  1. Added log messages in the controller and service layer calls - Since we use log4net for logging, this means simply adding Logger.Debug messages in the required methods. I made sure that the log took the time in millisecs, as seconds wasn't good enough! http://logging.apache.org/log4net/
  2. IE9 has a very useful addition to its Developer tools (F12), which is an additional tab for network monitoring. http://msdn.microsoft.com/en-gb/library/ie/gg589507(v=vs.85).aspx
This helped me realise that the performance bottleneck was not the database or business logic, but the response time - which meant HTML/Javascript sent to the client was enormous. One step which made a massive difference in reducing the response time was to enable HTTP dynamic compression in IIS Manager on our web server.
http://technet.microsoft.com/en-us/library/cc753681(v=ws.10).aspx
 

Saturday, 16 June 2012

Entity SQL and curly brackets


I came across this while working with ESQL. You may be trying to create a query as

String query = string.Format(“select a,b from tablename where a in {{0}}”, variablename)

This will not work as curly brackets needs to be escaped.

The easiest way to escape them is to add another curly brackets around the {0}, so it becomes {{{0}}}

Awkward, but works!


Monday, 21 May 2012

Change Data Capture

Change Data Capture is provided by SQL Server 2008. No more need for setting complicated triggers on your database object. It can make auditing database records so much easier.

The default retention value i.e. the time for which audit logs will be stored in the database is 4320 minutes = 72 hours = 3 days.
However it is configurable by using
sp_cdc_change_job @job_type='cleanup', @retention=minutes