This is kindof like asking, "how long is a string." There are a lot of reasons, most of which comes from the server and connection setup. This is especially common when a VPN is in the mix, talking to a web service, etc. This can also happen based on how a SQL Server is setup. This is not something I can give you a straight answer for, but I can tell you that you will want to look more in the direction of your configuration versus within the framework. It sounds like the network connection is being established that first time, and any subsequent update (within a shorter given period of time) isn't having to deal with that same barrier.If it were me, I would work backwards. I would create a simple test app that just creates an SqlConnection, and determine if the bottleneck is at the time of the initial connection being created or something else. This might even call for a packet sniffer if you can't pinpoint where the slowness is coming from.