A checklist for improving execution time between .NET code and SQL Server. Anything from the basic to weird solutions is appreciated.
Code:
Change default timeout in command and connection by avgbody.
Use stored procedure calls instead of inline sql statement by avgbody.
Look for blocking/locking using Activity monitor by Jay Shepherd.
SQL Server:
Watch out for parameter sniffing in stored procedures by AlexCuse.
Beware of dynamically growing the database by Martin Clarke.
Use Profiler to find any queries/stored procedures taking longer then 100 milliseconds by BradO.
Increase transaction timeout by avgbody.
Convert dynamic stored procedures into static ones by avgbody.
Check how busy the server is by Jay Shepherd.
A few quick ones...
In the past some of my solutions have been:
Fix the default time out settings of the sqlcommand:
Dim myCommand As New SqlCommand("[dbo].[spSetUserPreferences]", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.CommandTimeout = 120
Increase connection timeout string:
Data Source=mydatabase;Initial Catalog=Match;Persist Security Info=True;User ID=User;Password=password;Connection Timeout=120
Increase transaction time-out in sql-server 2005
In management studio’s Tools > Option > Designers Increase the “Transaction time-out after:” even if “Override connection string time-out value for table designer updates” checked/unchecked.
Convert dynamic stored procedures into static ones
Make the code call a stored procedure instead of writing an inline sql statement in the code.