如何解决从SQL Server顺序返回旧数据
问题:我有时看到的是,当我执行SELECT
操作({{1 }}。
我有一个VueJS应用程序,其中使用AxiosJS调用我的后端ExpressJS应用程序,该应用程序使用Sequelize连接到几个(4)SQL Server数据库。我还使用了VueJS开发人员工具,因此可以在前端实时查看变量和Vuex存储更改。我还在后端使用console.log,所以我也可以在那里看到一些东西。
在寻找解决方案时,我发现:
-
我不使用交易;我所有的查询都是将结果返回给应用程序的单个查询,所以我(应该)没有提交时间问题;即我更新或添加一行,只有在返回结果后,我才进行
findAll
-
Sequelize使连接保持打开状态,因此旧连接在数据库中显示为“休眠”;我看到这些确实会随着时间的推移而重复使用
-
我正在使用SQL Server中的默认隔离级别,该默认隔离级别为 READ COMMITTED (读已提交),该级别应返回已提交的数据;因为我在启动第二个查询之前正在等待第一个查询返回结果,所以它不应该提交并准备好获取最新值吗?
-
我看到SQL Server可以存储行的旧副本,有时制作SNAPSHOTS,但是我认为它们需要更高的隔离级别-但我不确定。也许它正在保留旧版本?
-
在弄清楚如何关闭和重新打开Sequelize连接方面我一直没有成功。我想在注销时关闭内容并在那里重新连接,因为该应用程序仍在选项卡中运行(如果这将解决我的旧数据问题),从而允许某人重新登录并打开所有数据库连接,以使其再次可用。根据可用的文档,我无法弄清楚。
-
我认为Sequelize正在使用旧连接,并且某种程度上导致SELECT结果过时-如果SQL Server保留行的旧版本,则更有可能
-
由于某种原因,如果我注销并硬刷新应用程序( CTRL + F5 ),则所有数据都是最新的;我不明白为什么会这样。浏览器可以坚持什么?请注意,服务器应用程序上的控制台日志始终与前端显示的内容一致。换句话说,如果后端控制台日志是陈旧的,那么前端是陈旧的;如果后端是新鲜的,那么前端也是。
-
我无法使用SSMS或Postman复制过时的数据
问题:那么,当我在前端使用Axios而在后端使用Sequelize时,我有什么可能的方式来获取过时的数据?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。