J H*_*son 6 excel timeout m powerquery
有没有办法在 Power Query 中设置最大运行时间或超时因子,以便在指定的时间段后,无论查询是否成功执行,查询都会自行终止?
这对我来说很重要,因为我在我的工作场所建立了各种查询,这些查询通常运行良好(因为我每天都在运行它,几个月和几年都没有问题)但偶尔,它们会挂起(可能是因为与另一个进程发生冲突)在那一刻,当服务器负载很重时)并无限期地在服务器上发出读取请求- 有一次 IT 告诉我他们在几个小时内从我的机器向数据库记录了超过 700 万次读取。在某些情况下,这些会导致服务器崩溃,从而导致大量停机。
所以我想知道是否有任何设置,或者我可以在查询本身中构建任何东西以确保它在一段时间后终止。
我精通 M Power Query 语言。
谢谢。
[更新 1] 感谢 Alexis 关于在编码连接时设置 CommandTimeout 值的以下建议。这是一个很好的指针。
我会尝试一下,做一些测试并报告是否最终解决了问题。
但与此同时,我深入研究了 Microsoft 的 Power Query 文档,发现 CommandTimeout 参数本身已经内置了 10 分钟的默认值,因此理论上即使我们没有指定该参数,查询应该自行终止。但事实并非如此。它运行了几个小时。
我想知道这是否是 Power Query Excel 版本的错误?因为我也在 Power BI 中使用了 Power Query,在那里我还没有看到它崩溃和挂起(不可否认,我使用 Excel 版本的频率比使用 Power BI 的频率要高)。
但是,如果有人对此问题的潜在修复有任何其他建议,我们将不胜感激。谢谢。
我在这里找到了一个相当不错的答案。以下是该论坛上发布的步骤:
- 在报表视图中打开 Power BI Desktop 文件
- 单击“编辑查询”的箭头(在外部数据部分)
- 将出现一个下拉列表 - 然后单击“数据源设置”
- 将出现数据源设置弹出窗口
- 单击“更改源...”
- 将出现另一个弹出窗口
- 单击高级选项(弹出窗口中将出现排序下拉菜单)
- “以分钟为单位的命令超时(可选)”将是第一个选项
- 输入一个值 - 我选择输入 60 分钟,但可以随意输入任何值
- 然后应用查询更改并等待刷新完成
这是为 Power BI 编写的,但它也适用于 Excel 查询编辑器。总之,
当我尝试连接到 SQL 服务器时,它CommandTimeout向我的 Source 步骤添加了一个参数。您可以改为使用此代码并跳过所有点击:
= Sql.Database("server", "DB", [CommandTimeout=#duration(0, 0, 15, 0)])
Run Code Online (Sandbox Code Playgroud)
如果您没有连接到 SQL 服务器,则通过数据源设置执行此操作可能更可取,因为参数可能不同。例如
= Web.Page(Web.Contents("URL", [Timeout=#duration(0,0,15,0)]))
Run Code Online (Sandbox Code Playgroud)
或者
= OData.Feed("http://some.url/service.svc/", null, [Timeout=#duration(0, 0, 15, 0)])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33194 次 |
| 最近记录: |