在我的代码中,我执行两种查询,这些查询是通过ODBC驱动程序在Azure SQL Server上执行的。无论我做什么,它们的执行速度似乎都很慢:
从[tableName]的ID = id的地方删除
INSERT INTO [tableName](?,...,?)OUTPUT插入.PK值(val_0,...,val_N)
两个查询都需要0.22-0.24秒才能执行,导致我的程序吞吐量非常低。
所有查询都在同一using语句内以重用连接:
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
... //commands here
}
我尝试通过以下方式执行它们,无论查询或方法如何,它们都花费了大约相同的时间(0.22-0.24秒):
using (OdbcCommand cmd = new OdbcCommand([SqlCommand], conn))
cmd.ExecuteNonQuery();
。
using (OdbcCommand com = new OdbcCommand([SqlCommand], conn))
using (OdbcDataReader reader = com.ExecuteReader())
{
while (reader.Read())
{
primaryKey = reader.GetString(0);
}
}
。
using (OdbcCommand com = new OdbcCommand([SqlCommand], conn))
primaryKey = (long) com.ExecuteScalar();
问题,我该如何编写查询,使其以预期的速度运行?**