Sql server SQL Server:介于1ms和1ms之间的Delete语句
我在我的C#项目中使用Sql server SQL Server:介于1ms和1ms之间的Delete语句,sql-server,performance,Sql Server,Performance,我在我的C#项目中使用SqlTransaction,我使用Delete语句和ecexutenquery调用 这工作得很好,我总是有相同数量的行要删除,但95%的时间,这需要1毫秒,约5%的时间,它是在300-500毫秒之间 我的代码: using (SqlTransaction DbTrans = conn.BeginTransaction(IsolationLevel.ReadCommitted)) { SqlCommand dbQuery = conn.CreateCommand
SqlTransaction
,我使用Delete
语句和ecexutenquery
调用
这工作得很好,我总是有相同数量的行要删除,但95%的时间,这需要1毫秒,约5%的时间,它是在300-500毫秒之间
我的代码:
using (SqlTransaction DbTrans = conn.BeginTransaction(IsolationLevel.ReadCommitted))
{
SqlCommand dbQuery = conn.CreateCommand();
dbQuery.Transaction = DbTrans;
dbQuery.CommandType = CommandType.Text;
dbQuery.CommandText = "delete from xy where id = @ID";
dbQuery.Parameters.Add("ID", SqlDbType.Int).Value = x.ID;
dbQuery.ExecuteNonQuery();
}
我的代码有问题吗?请阅读并开始解决此类问题
当然,我假设您在xy.id
上有索引。您的删除可能会不时被阻止。这可能是由多种原因造成的:
- 来自其他查询的数据锁
- IO块与您的硬件连接
- 记录增长事件
- 等