我使用Npgsql nuget包在PostgreSQL 10.3数据库中执行存储过程。存储过程读取上下文变量(tenantId),因此在从C#代码调用sproc之前,我必须对其进行设置。
当前,我打开一个新连接并执行两个顺序的命令:
命令以CommandType.Text设置上下文变量:
SET tenant_id = '<tenant id here>';
命令以CommandType.StoredProcedure
调用两个单独的命令会产生大约30毫秒的开销。
是否可以执行存储过程和单个命令中的“ SET”以消除开销?
PS:我们使用带有上下文变量的方法来保留旧版sproc接口。我们不想更改许多存储过程以将tenantId作为参数传递。