我们有一个雪花视图,可以使用浏览器查询。
但是,当使用C#代码查询同一查询时,该查询将挂起。
using (var connection = new SnowflakeDbConnection())
{
connection.ConnectionString = "ConnectionString";
connection.Open(); // Works
var sqlQuery = "select \"Col1\", \"Col2\", \"Col3\", \"Col3\", \"Col5\", \"Col6\" from \"View1\";
var command = new SnowflakeDbCommand(connection);
command.CommandText = sqlQuery;
command.CommandTimeout = 240;
using (var reader = command.ExecuteReader()) // Works
{
if (reader.HasRows) // Works and is true
{
while (reader.Read()) // Hangs here
{
}
}
}
连接字符串包含帐户,用户,密码,数据库,架构,角色和主机。
该视图包含大约25000个条目。
我在这里想念什么?
答案 0 :(得分:1)
因此,挂起可能是由多种原因引起的。我无法告诉您出了什么问题而没有登录。这是自述文件,最后一部分提供了如何启用日志记录的示例。 https://github.com/snowflakedb/snowflake-connector-net/blob/master/README.md
没有阅读日志,我只能猜测挂起的原因。一种猜测是您无权使用S3。当结果集很大时(在您的情况下为25000个条目),Snowflake服务器会将结果集写入S3 / Azure Blob,而客户端将从S3 / Azure Blob下载结果。如果您的网络无法访问S3 / Azure Blob,则它将挂起。
但是,这只是纯粹的猜测。确切地讲,最好的选择是启用日志记录以查看发生了什么。