PostgreSQL设置上下文变量并在单个命令中调用存储过程

时间:2018-09-04 13:46:47

标签: c# postgresql npgsql

我使用Npgsql nuget包在PostgreSQL 10.3数据库中执行存储过程。存储过程读取上下文变量(tenantId),因此在从C#代码调用sproc之前,我必须对其进行设置。

当前,我打开一个新连接并执行两个顺序的命令:

  1. 命令以CommandType.Text设置上下文变量:

    SET tenant_id = '<tenant id here>';
    
  2. 命令以CommandType.StoredProcedure

  3. 执行我的存储过程

调用两个单独的命令会产生大约30毫秒的开销。

是否可以执行存储过程和单个命令中的“ SET”以消除开销?

PS:我们使用带有上下文变量的方法来保留旧版sproc接口。我们不想更改许多存储过程以将tenantId作为参数传递。

0 个答案:

没有答案