在事务下执行的查询

时间:2019-12-18 22:43:05

标签: snowflake-data-warehouse

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

有什么方法可以知道在事务下执行的查询列表吗?谢谢!

3 个答案:

答案 0 :(得分:1)

如果使用的是python连接器,则可以利用query_tag在会话中“标记”交易。您只需要在交易开始和结束时设置值即可。这样一来,您就可以在query_history中查询特定的query_tag,或者通过组语句来报告持续时间或其他属性。

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

答案 1 :(得分:1)

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

完成后,您可以运行select current_transaction();并将其打印到python脚本的开头和结尾处的屏幕上,以调试检查事务ID是否相同。

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

答案 2 :(得分:0)

没有任何东西可以提供交易信息。此时,最好选择自己记录信息。