Streamlining Web Application Performance

Performance is the prime factor in the development of all type of applications. It becomes extremely important for a web application. Here are some guidelines for improving the application performance.

On the Side

  • Viewstate dramatically increase page size so use viewstate for controls carefully.

  • Use static or shared variable instead of application variable.

  • Use AJAX where ever possible.

  • Avoid writing inline code.

  • Use server.tranfer instead of response.redirect whenever possible.

  • Avoid using datagrid. Use repeater and datalist where ever possible.

  • Avoid use of a Throw to control the application flow: As it is an expensive operation, it should be used only when the execution must be stopped.

  • Avoid overuse of exception handling block: Do not place try's in everywhere in the code. Put just in places where you can't have control

  • Avoid huge methods: It is preferably small ones, which do just one single purpose. Huge methods, doing so many things tend to get even bigger, and the code tends to become slower for every maintenance.

  • Datasets are too costly. when using them; try to fetch max data in dataset once and then consume this dataset.
On The MSSQL Side
  • As everyone know, use stored procedure instead of writing long text queries. Stored procedures use compiled execution, are stored permanently on the back-end thus executes dramatically faster than text queries. When your SQL Server is located on another server and accessed over a network, stored procedures can help you to reduce network taffic as simple data elements are passed through the backend rather thang long text queries.

  • Never name your stored procedure with the prefix sp_. This prefix is internal to Microsoft SQL Server for looking for sp's in master db, so when you name your sp with sp_ firstly, the server will look for it in master table.

  • Avoid SELECT * FROM TABLE: This generate an internal select on syscolumns to determine which columns is going to be returned. Instead specify individual column names.

  • If possible, avoid table scans Try to insert at least an index for every table.