我正在使用gosnowflake 1.40驱动程序。我看到我的会话在2次查询后循环,如下图所示,相距不到1秒。连接设置如下所示:dsn, err := sf.DSN(sfConfig) if err != nil { panic("cannot get snowflake session: " + err.Error()) } DBSession, err = sql.Open("snowflake", dsn) if err != nil { panic("cannot get snowflake session: " + err.Error()) } return DBSession, nil我在函数中使用以下查询模式:result = dbSession.QueryRow(command)此会话循环模式并不理想,因为我希望能够承担一个角色并运行多个命令。有人可以告诉我,我可以做些什么来使雪花会议持续下去吗?我在使用WebUI时没有这个问题。
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
DB
维护连接池。池中的每个连接都将具有唯一的会话 ID。从文档中:
DB 是一个数据库句柄,表示包含零个或多个基础连接的池。它可以安全地由多个goroutine同时使用。
sql 包自动创建并释放连接;它还维护一个空闲连接的空闲池。
有几个选项可用于绕过在连接池中循环的默认行为:
使用 DB 从连接池中获取特定的
Conn
实例。康恩()
.该文档特别指出:在同一 Conn 上运行的查询将在同一数据库会话中运行。
使用 DB 修改连接池参数
。SetMaxOpenConns()
.我怀疑将其设置为也会获得所需的行为。但是,这引入了可伸缩性/并发性问题,这些问题首先通过具有连接池来解决。
1
请注意,我特别不熟悉雪花驱动程序。驱动程序可能支持其他选项。
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消