Ich verwende .NET, um SQL-Vorgänge unter SQL Server 2014 auszuführen. Hier ist der verwendete Code:
using(SqlConnection conn = new SqlConnection(connectionString)){
///programming/1880471/capture-stored-procedure-print-output-in-net
conn.InfoMessage += new SqlInfoMessageEventHandler(logSqlMessages);
conn.Open();
using(SqlCommand stmt = new SqlCommand{
Connection = conn,
CommandText = sql,
CommandTimeout = 30000 // The time in seconds to wait for the command to execute. The default is 30 seconds.
//,CommandType = CommandType.StoredProcedure
})
{
affectedRecords = stmt.ExecuteNonQuery();
} // using stmt
} // using conn
Wenn ich mir Active Monitor anschaue, gibt es zehn Zeilen, die auf dieselbe Operation verweisen. Sie haben alle das gleiche session_id
, einige von ihnen haben einen Task-Status und die meisten von ihnen sind suspendiert. Einige von ihnen haben LastWaitTime CXPACKET
und die meisten sind PAGEIOLATCH_SH
.
Ich habe auch eine Abfrage auf SQL Server ausgeführt und dasselbe Verhalten ist auf Active Monitor aufgetreten.
Vielleicht ist es ein normales Verhalten, aber es ist seltsam, dass eine SELECT-Operation mehrere Zeilen erstellt und sich so blockiert. Irgendeine Idee, was es verursachen könnte?