Azure持久功能。预期的活动吞吐量是多少?

时间:2018-09-27 10:53:58

标签: c# database performance azure-functions azure-durable-functions

我有一个Azure Durable函数活动函数,该函数以递归方式遍历一些嵌套数据。在每次递归中,我都会在SQL Server数据库中插入一行。

除了对每次迭代构造一个SQL INSERT查询之外,我对数据没有任何特殊处理,但是我每秒只能获得3-5次插入的吞吐量。我在本地运行Durable函数时看到了这一点,我期望吞吐量是现在看到的100倍。

我创建SQL命令并像这样执行它们:

using (OdbcCommand com = await CreateCommand("TableName",  Values, forignKey, connection))
using (OdbcDataReader reader = com.ExecuteReader())
{
    while (reader.Read())
    {
        insertedPK = reader.GetString(0);                             
    }
}

private static Task<OdbcCommand> CreateCommand(string tableName, Dictionary<string, object> values, string parentPK, OdbcConnection connection, TraceWriter log)
{
    List<OdbcParameter> parameters = new List<OdbcParameter>();
    List<string> names = new List<string>();

    foreach (var kv in values)
    {
        if (kv.Value != null)
        {
            OdbcParameter p = new OdbcParameter("?", OdbcType.NVarChar) { Value = kv.Value };
            parameters.Add(p);
            names.Add($"[{kv.Key}]");
        }
    }

    string command = $"INSERT INTO [{tableName}] ({string.Join(", ", names.ToArray())}) OUTPUT Inserted.PK"
                    + $" VALUES ({string.Join(", ", Enumerable.Repeat('?', names.Count))})";

    OdbcCommand cmd = new OdbcCommand
    {
        CommandText = command,
        Connection = connection
    };
    cmd.Parameters.AddRange(parameters.ToArray());

    return Task.FromResult(cmd);
}

问题:

  1. 这是持久功能活动的预期吞吐量吗?

  2. 是否有任何方法可以加快持久功能的活动?

0 个答案:

没有答案