ich eine Abfrage direkt am Laufen, es in der Natur ist trivial:Dataset Zeiten, während Abfrage wird sofort
SELECT * FROM [dbo].[vwUnloadedJobDetailsWithData] WHERE JobId = 36963
Als ich das von Management Studio der Abfrage dauert nicht einmal eine Sekunde. Wenn ich es innerhalb des Tabellenadapters laufe, überschreitet es das Zeitlimit. Ich habe das mehrere Male behoben, aber die Lösung ist lächerlich. Wenn ich den Tabellenadapter aus meiner xsd-Datei lösche und ihn neu erstelle, entspricht die Abfragezeit etwa zwei Tagen der von Management Studio, aber ich muss sie erneut bereitstellen, was asinine ist.
Jeder Einblick in was könnte dies verursachen würde sehr geschätzt werden. Ich habe eine andere Frage zu diesem Thema gesehen, aber die Lösung mit set arithabort on vor der Abfrage hatte keine Auswirkung auf mich.
Edit: Es wurde gefragt, dass ich meinen Code für den Aufruf der Abfrage zeigen. Nun geschieht dies, wenn ich in meine XSD-Datei gehen und nur Datenvorschau auch, aber aus Gründen der Klarheit, hier ist es:
using (TEAMSConnection connection = new TEAMSConnection())
{
connection.OpenConnection();
_JobDetailsDAO jobDetailDao= new _JobDetailsDAO(connection);
return jobDetailDao.GetUnloadedJobDetailsByJobId(jobId);
}
Bei der Entsorgung der Verbindung der Datenbankverbindung geschlossen ist. mit dieser Codezeile:
if (_DBConnection != null && _DBConnection.State == ConnectionState.Open)
_DBConnection.Close();
Edit2: Ich habe eine Spur lief und hier die eingestellten Optionen, die
set quoted_identifier auf Satz ARITHABORT off Satz NUMERIC_ROUNDABORT off Satz ANSI_WARNINGS auf Satz gesetzt werden ANSI_PADDING auf Satz ansi_nulls auf Satz CONCAT_NULL_YIELDS_NULL auf Satz Satz implicit_transactions off eingestellte Sprache us_english CURSOR_CLOSE_ON_COMMIT off set date mdy datefirst 7 Satz Transaktionsisolationsstufe Lese
begangenenIch ging hin und fügte hinzu, dass auf die Abfrage, die ich im Management Studio generiert und es lief immer noch in weniger als einer Sekunde. Ich habe sogar die Abfrage genau wie in der Spur kopiert.
exec sp_executesql N'SELECT * FROM [dbo].[vwUnloadedJobDetailsWithData] WHERE JobID = @JobId',N'@JobId int',@JobId=36963
und es ist immer noch weniger als eine Sekunde Rückkehrzeit. Ich bin so sehr verwirrt.
Danke, Josh
Es klingt, als würden Sie Ihre db-Verbindungen nicht schließen, aber es ist schwer zu wissen, was passiert, weil Sie den C# -Code nicht geteilt haben. –
Entschuldigung, es gibt nicht viel Code zu teilen ..... soweit sie die Verbindung schließen, werden sie definitiv geschlossen. Ich werde meine Abfrage und die Verbindungsbehandlung für diese Abfrage posten, wenn Sie meinen, dass dies hilfreich wäre. – joshlrogers