从视图挂起访问数据

时间:2019-04-02 14:10:29

标签: c# snowflake

我们有一个雪花视图,可以使用浏览器查询。

但是,当使用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个条目。

我在这里想念什么?

1 个答案:

答案 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,则它将挂起。

但是,这只是纯粹的猜测。确切地讲,最好的选择是启用日志记录以查看发生了什么。