我的公司有一个反复出现的问题,查询将在一夜之间挂起,并占用夜间数据集市的负载。
一个常见的说法是,当追查到该人为何让 SQL 查询在一夜之间运行时,Access SQL 直通查询在他们离开之前已经停止运行,而 Access 只是一直在运行,没有任何运行。他们坚称没有任何东西在运行。
他们是误会/撒谎/不注意,还是需要关闭 Access 才能终止连接?这是 Access 中的一个怪癖,还是一个查询挂起(尽管它看起来不像正在执行)是一个不可能的场景?
我的公司有一个反复出现的问题,查询将在一夜之间挂起,并占用夜间数据集市的负载。
一个常见的说法是,当追查到该人为何让 SQL 查询在一夜之间运行时,Access SQL 直通查询在他们离开之前已经停止运行,而 Access 只是一直在运行,没有任何运行。他们坚称没有任何东西在运行。
他们是误会/撒谎/不注意,还是需要关闭 Access 才能终止连接?这是 Access 中的一个怪癖,还是一个查询挂起(尽管它看起来不像正在执行)是一个不可能的场景?
两个可能的原因:
1) 如果查询返回一个大的记录集,Access 将继续加载额外的记录一段时间,而不是全部加载,使表处于 ASYNC_NETWORK_IO 等待状态,即锁定。
见https://stackoverflow.com/a/35176081/3820271
2) ODBC 刷新间隔- 默认情况下每 1500 秒(25 分钟)Access 将重新查询加载的数据。
请注意,这都不特定于 PassThrough 查询,它也适用于链接 ODBC 表上的 Access 查询。
所以是的,你应该告诉用户在晚上关闭 Access。