【发布时间】:2015-03-19 02:54:01
【问题描述】:
我有一个要求,其中一个表包含某些事物的状态。 该表被截断,并且每秒插入新的状态数据。 问题是,如果在删除和后续插入之间执行选择查询,用户将得到空表作为回报。 我认为 SQL 事务在这里无济于事,但不确定。 此外,如果选择查询在删除和插入查询之间执行,它不应该返回错误,因为它被数据库锁阻塞。它应该等到删除+插入操作完成。
实施这样一个系统的最佳方式是什么? 我应该如何形成“删除+插入”查询和“选择”查询?
提前谢谢你。
--------附加信息 该表将是多个繁重查询的结果,并且将每秒更新一次,这样应用程序就不会运行这些繁重的查询,而是从该表中获取所需的信息。 所以每秒截断并插入一次,然后随机选择多个。
【问题讨论】:
-
为什么你认为交易在这里没有帮助?
-
开始一个事务,截断,插入新行,最后提交。
-
因为据我了解,可以在事务中的删除和插入之间读取数据。 transaction 将允许我将 sql 操作列表视为一个,以便能够恢复它,否则,其他查询可以根据我的理解读取脏数据。此外,它不应该使其他选择查询失败。我对交易的理解错了吗?
-
喜丹和亚伦。我认为交易是最好的方式,就像你说的那样。我做了一些更多的测试,到目前为止它似乎运行良好。然而,我们将采用不同的方法,但我认为交易解决方案最适合我的需要。谢谢。
标签: sql sql-server sql-server-2005