在事务下执行的查询

queries executed under a transaction

我们正在使用 python 雪花连接器来执行查询。我们最近更改了代码以封装少量查询以在单个事务下执行。作为测试的一部分,我们希望确保这些查询都在单个事务下执行。我们已经在历史选项卡下进行了检查。我们只看到查询 ID、sql 文本、会话 ID 和其他非事务性详细信息。

有没有办法知道一个事务下执行的查询列表?谢谢!

没有任何交易信息。此时您最好自己记录信息。

如果您使用 python 连接器,您可以利用 query_tag 到 "mark" 会话中的事务。您只需要在交易开始和结束时设置值。这将允许您在 query_history 中查询特定的 query_tag,或者可以分组语句以报告持续时间或其他属性。

https://docs.snowflake.net/manuals/user-guide/python-connector-example.html#setting-session-parameters

您只需确保查询 运行 在同一个会话中,并且您已通过在第一个查询中发出 begin 语句来启动事务。

完成后,您可以 运行 select current_transaction(); 并在 python 脚本的开头和结尾将其打印到屏幕上以调试检查交易是否正常ID是一样的。

或者,您应该能够使用 Snowflake 文档中 this example 中的 python 上下文管理器来管理事务。只需确保设置连接参数 autocommit = False