极慢的Excel ODBC连接

4
我在Excel中建立了一个仪表盘,它连接到SQL Server。有大约20个使用SQL参数的microsoft查询,以提取最少量的数据。查询提取的数据行数从30行到一次查询的4000行不等。
这个仪表盘曾经非常快,更新所有查询最多只需要2-3秒钟。现在出现了不一致性,使用相同的查询更新相同数量的数据可能需要长达5分钟。某些查询进行了一些小的更改,但是将更改还原并不能将工作簿恢复到正常速度。即使只剩下一个查询,删除其他查询仍然会使工作簿极其缓慢。重新创建一个工作簿并不是一个选项。
我意识到,如果我在新工作簿中打开一个microsoft查询连接,那么工作簿就会很快。看起来必须在Excel工作簿打开时打开并连接Microsoft Query才能获得合理的速度。但这个技巧并不总是有效。
考虑到每个SQL查询在SQL Management Studio中执行的时间不到四分之一秒,我该怎么做才能使速度恢复正常?
我使用的是Windows 10上的Excel 2016。
我在网上搜索了很久,没有找到任何解决方案的线索。

记录每个查询和每个工作表更新的运行时间,使用VBA。问题可能出现在随着数据增长而进行的工作表更新中。 - Jules
有没有办法在SQL端合并这些查询,然后只调用一个过程到EXCEL中呢?无论如何,EXCEL都不应该取代你的SSMS。 - clifton_h
你需要找出哪个环节耗费了时间:1. 连接到 SQL Server,2. 在 SQL 侧运行查询;3. 将数据呈现到 Excel 中。可能是第二个环节存在问题。你需要在类似 SQL Server Management Studio 的工具中直接运行查询并查看其所需时间。 - Nick.McDermaid
你没有提供任何关于你如何运行查询的详细信息。 - Tim Williams
Nick - 我运行了一个分析器,看起来建立连接是个问题。在SQL Server Management Studio中,每个查询都非常快。这是跟踪的摘录:XML: https://drive.google.com/open?id=0Bybw6zYPDY55Q0ktVGJiTXdlTXM Trc: https://drive.google.com/file/d/0Bybw6zYPDY55WFdCMXJlaWsweTQ/view?usp=sharing我不确定如何正确阅读它,但似乎存在审核注销的问题(连接打开的时间?)。我认为查询运行很快,但连接打开的时间更长。 - Maxime
显示剩余2条评论
1个回答

5

这真是个大帮助。原本连接需要约15秒钟,现在几乎瞬间完成。 - Mark Longmire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接