问题标签 [dirtyread]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 为什么 Perl 的 DBI 会抱怨“在未打开的光标上尝试获取”?
这是我的脚本:
注意:$dbstr
是一个有效的数据库名称。
我不是数据库程序员。我做错了什么导致 Perl 脚本失败说:
DBD::Informix::db selectrow_array 失败:SQL:-400:在未打开的游标上尝试获取。
如果我编写一个简单的脚本来连接数据库$dbstr
并显示表格内容,它可以正常工作,但上面的代码不起作用。
postgresql - Dirty Reads in Postgres
I have a long running function that should be inserting new rows. How do I check the progress of this function?
I was thinking dirty reads would work so I read http://www.postgresql.org/docs/8.4/interactive/sql-set-transaction.html and came up with the following code and ran it in a new session:
Postgres gives me a syntax error. What am I doing wrong? If I do it right, will I see the inserted records while that long function is still running?
Thanks
sql - 像 SO 这样的网站的数据访问策略 - 排序的 SQL 查询和影响排序的同步更新?
我正在开发一个 Grails Web 应用程序,该应用程序的访问模式与 StackOverflow 或 MyLifeIsAverage 类似——用户可以对条目进行投票,他们的投票用于根据投票数对条目列表进行排序。在执行排序的选择查询时可以进行投票。
由于选择会锁定表的大部分,因此似乎正常的事务锁定会导致更新永远需要(给定足够的流量)。有没有人开发过具有此类数据访问模式的应用程序,如果是,您是否找到了一种方法来允许这些更新和选择或多或少同时发生?有谁知道像 SO 这样的网站是如何处理这个问题的?
我的想法是使排序选择脏读,因为如果它们不是一直都是最新的,这是可以接受的。这是我可能提高这些选择和更新性能的唯一想法,但我认为有人可能知道更好的方法。
sql-server-2005 - 选择是否会被 DML 干扰
使用干净读取(已提交读取)时... 选择查询是否会受到另一个 DML(插入、更新、删除)查询的干扰?如果是,您能否提供一些案例。我正在使用 SQL Server 2005。
以下查询产生不正确数据的可能性是什么。该查询不使用任何连接,它只是根据某些条件从单个表中获取数据。
objective-c - 对可能被objective-c中的另一个线程锁定的对象进行“脏读”的最佳方法
我想知道以下是否是读取和复制可能被另一个线程锁定的对象的最佳方法?
我有几种方法,如下所示,可以锁定相关对象以向数组添加或删除对象。
linq - 实体框架 - 这会进行脏读吗?
我对 Web 应用程序中的实体代码有一些 linq。它基本上记录了一个应用程序被下载了多少次。我担心这可能会发生:
- 会话 1 读取下载计数(例如 50)
- 会话 2 读取下载计数(再次,50)
- 会话 1 将其递增并将其写入数据库(数据库存储 51)
- 会话 2 将其递增并将其写入数据库(数据库存储 51)
这是我的代码:
这有可能发生吗?我怎么能阻止它?
谢谢你,菲德尔
nhibernate - NHibernate PocoEntityTuplizer 将实体设置为“脏”。我该如何阻止这个?
我数据库中的一些对象使用 0 表示不存在的关系。所以我设置了一个 NullableTuplizer 类。我在网上找到了这个的代码。到目前为止它一直有效,但我注意到一个问题。我们一直遇到重大问题,即实体在被选中后立即变脏。因此,在对这个对象执行 Get() 之后,它的脏值和 NHibernate 会立即尝试将其保存到数据库中。
我试图防止这些“映射问题”。有谁知道如何让它知道它真的不脏?
sql-server - 如何编写 SQL 来更新和取消死锁?
我需要非常频繁地执行这个 SQL
我可以允许脏读或脏写,但我不想看到死锁,有没有办法最大限度地避免死锁?
编辑
好的,@Tomtome 这可能不是僵局,这对我来说是个好消息。
在这里我跟进一个新问题,希望您能提供帮助。
我还需要读取数据,所以我使用
这不是一个事务,只是一个简单的一行 SQL,而且我已经使用了,如果我允许脏读,是否nolock
需要使用SET TRANSACTION ISOLATION LEVEL
以避免死锁。
再次 EIDT
我认为 SET ISOLATION LEVEL 为 READ UNCOMMITTED 和 WITH NOLOCK 是一回事。所以完成了。谢谢大家,
java - 运行 H2(在 DB2 模式下)时的 DB2 语法(限制和脏读)
我有一些我目前正在尝试进行单元测试的方法。这些方法在使用 Spring JdbcTemplates 的 DB2 v8 上运行良好(在生产中)。
每个 SQL 通过将“WITH UR”附加到语句来允许“脏读”。此外,他们中的一些人通过添加例如“FETCH FIRST 1 ROWS ONLY”来使用“限制”。
这适用于真正的 DB2,但我想针对内存数据库对这些方法进行单元测试——这是 H2 进入的地方。
如果我删除“WITH UR”和“FETCH FIRST ..”,一切正常,但我不想更改方法,而只是更改后端数据库。
据我所知,这不能直接使用 H2,因为语法不同(尽管我使用 MODE=DB2)。
现在,该怎么办?我应该/可以使用另一个内存数据库吗?我不想更改方法,也不想添加“测试”功能/黑客,所以这是不行的。
想法和同样非常感谢!
编辑
我不确定是我还是什么,但我收到以下错误。注意,我使用的是 Spring 3.1 和 H2 1.3.166,数据库的 url 是“jdbc:h2:~/testdb;MODE=DB2”。我不知道它为什么会失败,因为 sql 在 H2 控制台中运行时有效,但不是来自我的单元测试(猜它不是损坏的 H2):
编辑#2 如果有人在这里遇到同样的问题,这就是我发现的。我正在使用以下内容:
这意味着 Spring 将使用通用 bean 重新实例化数据源,因此我的设置丢失了。解决方案(在我的情况下)是通过以下方式简单地以编程方式加载数据库: