Domanda

Ho una lunga istruzione SQL che voglio correre, e non importa quello che ho messo in "timeout=" clausola di mia stringa di connessione, sembra sempre alla fine dopo 30 secondi.

Sto solo usando SqlHelper.ExecuteNonQuery() per eseguirlo, e consentendo di prendersi cura di apertura di connessioni, etc.

C'è qualcos'altro che potrebbe essere rilevante mio timeout, o causando sql server di ignorarlo?Ho eseguito profiler oltre la query, e la traccia non ha un aspetto diverso quando lo eseguo in management studio, rispetto nel mio codice.

Gestione studio di completare la query in circa un minuto, ma anche con un timeout impostato a 300, o 30000, il mio codice ancora dopo 30 secondi.

È stato utile?

Soluzione

Che cosa si sta utilizzando per impostare il timeout nella stringa di connessione?Dalla memoria "ConnectionTimeout" e si interessa solo il tempo necessario per la realtà collegare per il server.

Ogni singolo comando separata "CommandTimeout" che sarebbe quello che stai cercando.Non sono sicuro di come SqlHelper implementa però.

Altri suggerimenti

Oltre al timeout nella stringa di connessione, provare a utilizzare la proprietà timeout del comando SQL.Qui di seguito è un esempio C#, utilizzando la classe SqlCommand.Il suo equivalente dovrebbe essere applicabile a ciò che si sta utilizzando.

SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection);
command.CommandTimeout = 0;
int rows = command.ExecuteNonQuery();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top