OdbcCommand执行(ExecuteScalar / ExecuteReader / ExecuteNonQuery)均运行缓慢

时间:2018-10-03 11:49:16

标签: c# sql-server odbc azure-sql-database query-performance

在我的代码中,我执行两种查询,这些查询是通过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();

问题,我该如何编写查询,使其以预期的速度运行?**

0 个答案:

没有答案