Click here to Skip to main content
15,884,861 members
Please Sign up or sign in to vote.
4.45/5 (4 votes)
Hi all,
i have a web application which is very large in terms of form and database. we have around 150 web pages and 50 database table in database. somehow the architecture of the project is not good. we have used dev express controls , ajax tool kit , jquery , json , lot of sessions and viewstate in every pages. functionality of project is working fine but performance of the application is very poor. can anyone please help me to check how can we improve things based on performance. or some configuration settings may be on IIS.

we have used cache and gzip compression but other suggestions are also welcome.

Thanks
Posted
Comments
VICK 20-Feb-14 1:19am    
Have you tried optimization at DB end.. e.g. if you are using inline queries with select *.. you can change them to select field1, field 2 etc.. mean just get the desired results and so on.. Optmization at DB end can maximize your application performance.
ravikhoda 20-Feb-14 3:49am    
thanks for all of yours suggestions i think database clean up will take a lot of time for me only and then i can test things again. i will apply other changes and update you later

 
Share this answer
 
v4
Comments
ravikhoda 20-Feb-14 3:49am    
thanks for all of yours suggestions i think database clean up will take a lot of time for me only and then i can test things again. i will apply other changes and update you later
thatraja 20-Feb-14 3:54am    
welcome & let me know
Maciej Los 2-May-14 15:01pm    
"Improve everything" link placed down to your sign on "Bugs And Suggestions" board - that's the way to chain attention ;)
+5!
 
Share this answer
 
Comments
ravikhoda 20-Feb-14 3:49am    
thanks for all of yours suggestions i think database clean up will take a lot of time for me only and then i can test things again. i will apply other changes and update you later
1) Use Stored Procedures where ever possible...
2) Check your queries in the SPs. Remove unwanted fields from the queries...
3) Index the Tables which are used most in Select queries..
4) If you are using SQL Server as DB, monitor the queries to identify which queries take more time to execute.
5) Do not store large data in Sessions/Viewstate.

The above points are basic points.

http://www.infoworld.com/d/data-management/7-performance-tips-faster-sql-queries-262?page=0,0[^]

and Refer the above link

Hope this gives the start you need...
 
Share this answer
 
v3
Comments
ravikhoda 20-Feb-14 1:45am    
1) Use Stored Procedures where ever possible...(already have this )
2) Check your queries in the SPs. Remove unwanted fields from the queries...(need to check on all sp)
3) Index the Tables which are used most in Select queries..(not done)
4) If you are using SQL Server as DB, monitor the queries to identify which queries take more time to execute. (will check this)
5) Do not store large data in Sessions/Viewstate. (there are lot of viewstate and session variables not sure which we can avoid)


one more thing. there are some columns in the database which were previously used but now they are not used in project. does these affect the performance of the project.
Dinesh.V.Kumar 20-Feb-14 1:54am    
Just remove those. The query will unnecessarily fetch the columns when it is not required. Then these columns will be in memory and will be unused...Till it is cleared..

Also clear the memory as and when it is used..
Usage of proper design patterns in the web application will help you in memory management
For eg: using singleton pattern will help you manage the objects. The object once created will be reused when required and will not be created again and again when needed.

Find the Design Patterns suitable for your application and implement it..
It will reduce lot of over heads..

Regards
ravikhoda 20-Feb-14 1:55am    
Tell me one more thing please which is better ..join query or inline sub query if we wanted to get data from multiple tables.
Dinesh.V.Kumar 20-Feb-14 2:30am    
Joins are always better then subquery...
Tom Marvolo Riddle 20-Feb-14 2:42am    
yes you're right.My 4
It seems lot of client side scripting, there are some non-normalized tables if you can refine them,
1. using client side scripting improves performance but if you use too much of it, it may increase data transportation time which in turn may effect the performance of page loading and post-back, decide between client side and server side code by taking the performance also into consideration, usually that's what lot of applications are doing these days.
2. If there are tables which don't have proper normalization try put normalization if missing
3. If handling huge data then use Stored Procedures, EDMS doesn't work very well with huge data manipulations yet.
4. If there are stored procedures remove selecting all columns instead use column names in select statements.
5. Put proper where clauses, select data as chunks put them either in temp tables or table variables if the table has millions of rows, don't try to put joins on the whole table itself
6. You can add indexes on the original table as well as on the temp tables as well, but see how indexes are working with performance on that table.
7. And remove unused variables and code from C# code and follow the guidelines for refactoring code in C#, there are many books/links available regarding it.
8. Make changes and see which one is very effective for your application, it depends.


When I was working with one State Govt client, table variables were crashing the stored procedures and temp tables were working very fine, against the rule of Microsoft. When I investigated, it is because they have lot of physical memory but very less RAM, as RAMs are more expensive and need little more work for installations they had been just adding up the physical memory.

So it always depends upon the situation there, and there are other good solutions that other people have given follow them too like removing unwanted state management and etc.
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900