我有一个将 RetainSameConnection 设置为 True 的 ODBC 连接。
我认为在我的包完成后它仍然保持打开状态,因为SELECT COUNT(*) FROM MyTable
直接来自我的查询浏览器的简单查询会挂起。
这听起来可能吗?我如何证明/反驳我的理论?完成后,有没有办法在 SSIS 中强制关闭此连接?
我有一个将 RetainSameConnection 设置为 True 的 ODBC 连接。
我认为在我的包完成后它仍然保持打开状态,因为SELECT COUNT(*) FROM MyTable
直接来自我的查询浏览器的简单查询会挂起。
这听起来可能吗?我如何证明/反驳我的理论?完成后,有没有办法在 SSIS 中强制关闭此连接?
SELECT TOP 1 * FROM MyTable
我通过做一个立即成功返回来反驳我的理论。
奇怪的是,问题COUNT(*)
实际上真的很慢 - 当我添加一些子句(不影响任何记录)时,计数立即返回。这些子句更改了查询执行计划,以便使用主键。不知道为什么它无论如何都不会使用密钥...
-- Slooooow - 500K records
SELECT COUNT(*) FROM MyTable
-- Instant - 500K records
SELECT COUNT(*) FROM MyTable WHERE ColX > 0 AND ColY > 0