How to solve TimeOut Expired Problem?

51,175

Solution 1

There's no "black voodoo magic" out there - either you can make your query go faster (return less data, improve the database design, find and apply indices that make your queries execute faster), or then increase the timeout you allow the query to run before a timeout is thrown.

Those are your two options - take your pick.

UPDATE: a little googling reveals:

Dim cmd
Set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandTimeout = 120   ' number of seconds

Marc

Solution 2

You have to set .CommandTimeout on the command. It doesn't work if you set it in the connection string.

Solution 3

I would guess you're either trying to pull back a lot of data and it's taking SQL Server more than the default ADO timeout (either 30 or 40 seconds?) to pull that data back.

Or it's not really a lot of data, but you've not got a decent index on the table - so I'd check the indexes against your query (execution plan is your friend here).

Or it's a mix of both.

How long does the query take if you run it direct in SQL Management Studio?

Share:
51,175
Gopal
Author by

Gopal

Updated on April 27, 2020

Comments

  • Gopal
    Gopal about 4 years

    Using SQL Server 2005 and VB6

    When I executing for yearly data or more than 3 months' data, it is showing "Timeout Expired" error. It is not executing completely.

    My Connection String

    ConnectionString = "Provider=SQLOLEDB.1;" & _
        "Persist Security Info=False; " & _
        "User ID=" & Settings.SQL_Username & _
        "; Password = " & Settings.SQL_Password & "; " & _
        "Initial Catalog=" & Settings.SQL_DatabaseName & ";" & _
        "Data Source=" & Settings.SQL_ServerAddress
    

    How do I solve this problem?

    Plz...

  • Gopal
    Gopal over 14 years
    In ConnectionString Itself i have to give the timeout or select from the database. Where I have to mentioned the timeout. Plz
  • Gopal
    Gopal over 14 years
    I Posted My connection String.
  • marc_s
    marc_s over 14 years
    the connection timeout is unlikely to be the problem - the connection seems to be in place, but the command issued then times out. You need to set the .CommandTimeout property - and that's not on the connection string
  • marcc
    marcc over 14 years
    You cannot solve this in your connection string. Work on fixing the query (optimizing) and take the above advice and add a CommandTimeout value.