Tôi sử dụng .NET để thực thi các hoạt động SQL trên SQL Server 2014, đây là mã được sử dụng:
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
Khi tôi nhìn vào Active Monitor, có hàng chục hàng tham chiếu cùng một thao tác. Tất cả chúng đều giống nhau session_id
, một số trong số chúng có Trạng thái nhiệm vụ đang chạy và hầu hết chúng đều bị treo. Một số trong số họ có LastWaitTime CXPACKET
và hầu hết là PAGEIOLATCH_SH
.
Tôi cũng đã chạy một truy vấn trên SQL Server và hành vi tương tự đã xảy ra trên Active Monitor.
Có thể đó là một hành vi bình thường của nó, nhưng thật kỳ lạ khi một thao tác CHỌN tạo ra nhiều hàng và tự chặn như thế. Bất kỳ ý tưởng về những gì có thể gây ra nó?