一段时间以来,我一直在使用 Excel 数据获取和转换(即 Power Query)来使用 SSAS 向导从我们的数据仓库 Excel BI 服务器中查询数据。
在 2018 年 8 月 1 日左右,一些提取超过 500,000 条记录(最多 3 或 400 万行)的此类查询开始无法完成。
在构建了一个最小测试查询 (QueryTest) 之后,在“失败模式”下大约一个小时内几乎没有返回 45 万条记录,我们有一个主要假设:Office/Excel 版本更新似乎是原因。
如果我们使用早期版本的 MS Office 365(例如 circa v 1705 build 8201.2200 click to run),那么 QueryTest 在大约 6 分钟内返回所有 450k 记录。如果我们使用最新的 Excel 更新版本(v 1803 build 9126.2295),测试运行有时不会在一个小时内超时之前完成,或者花费的时间远远超过 1/2 小时。 (参见标称 6 分钟运行表。)
在快速、早期版本的 Excel 中,Excel 功能区的“数据”选项卡为“显示查询”和“显示连接”提供单独的菜单项,并且每个命令都会打开不同的面板。
在“损坏”的更高版本中,“显示查询和连接”只有一项,并且打开的面板包含一个查询和连接选项卡。
我已经进行了很多很多测试。无论哪台笔记本电脑运行查询,无论使用哪个用户帐户,无论笔记本电脑是直接连接到公司 LAN/WAN 还是通过 VPN,并且通常无论地理位置如何,都会出现相同的结果。在某些地方,QueryTest 的表现不那么糟糕,大概是因为更好的网络性能或延迟。
我们还在不存在问题的 Citrix 上使用 Excel,但似乎我们的 Citrix 版本的 Excel 是具有拆分查询和连接菜单的“旧”版本之一。
我们已经在删除 TrendMicro(我们的防病毒程序)的情况下进行了测试,相对性能差异没有任何变化。
我的猜测是,安全和/或访问协议(protocol)已经以某种方式发生了变化,导致从服务器返回的结果处理或打包速度变慢,但这甚至不是科学的 WAG。
那么,有没有人知道更新中可能发生了什么可能导致这种情况,更重要的是,如何配置服务器和/客户端查询以恢复速度?
试验结果:
Test Name Records Seconds Records/Sec Complete
Old version 1 454,781 140 3,248.44 yes
Old version 2 454,781 137 3,319.57 yes
Old version 3 454,781 141 3,225.40 yes
New version 1 101,284 360 281.34 No
New version 2 94,836 360 263.43 No
New version 3 107,236 360 297.88 No
最佳答案
这可能有点晚,但可以帮助其他人。如果在使用 Power Query 时下载速度突然变慢,我会使用新的 Power Query 连接创建一个新选项卡(使用与旧选项卡相同的查询...只是在新选项卡上),它的运行速度似乎非常快。
关于Excel Power Query(又名获取和转换)更新后慢 10 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53303013/