【问题标题】:How to add NOLOCK for Auto generated SQL queries in Loopback 3如何在 Loopback 3 中为自动生成的 SQL 查询添加 NOLOCK
【发布时间】:2023-03-04 05:23:01
【问题描述】:

我正在使用 Loopback 3 和 SQL。我们在 SQL 表中有 2000 万行,当我们使用 Loopback 查询数据时,会花费大量时间,进一步观察我们发现查询在 SQL 中是阻塞的。注意到 Loopback 自动生成的查询没有任何 WITH (NOLOCK)。如何为每个SELECT 查询添加WITH (NOLOCK)

【问题讨论】:

  • 您将使用哪个连接器?
  • @KetanPatil loopback-connector-mssql

标签: loopbackjs strongloop loopback3


【解决方案1】:

使用Transaction.READ_UNCOMMITTED 将产生WITH (NOLOCK)

例如:

YourModel.beginTransaction({isolationLevel: YourModel.Transaction.READ_UNCOMMITTED}, (err, tx) => {
  // Now we have a transaction (tx)
  // Write the queries here
  // Then run commit the transaction:
  tx.commit(err => {});
});

更多详情请见the docs

【讨论】:

  • @KetanPatil 它是否添加了 NOLOCK ?我已经尝试过上面的一个。我没有在 SQL 跟踪分析器中看到像 SELECT name FROM Employee WITH (NOLOCK) 这样的 nolock。我没有在 txns 中执行的内联查询。我直接调用模型/表
  • 根据文档,应该是NOLOCK
  • 它应该产生一个带有 READ UNCOMMITTED 的事务,从而达到相同的结果。只是一个适用于整个事务,而另一个仅适用于该语句。
  • @KetanPatil 错误:1. YourModel.beginTransaction 不是函数 2. YourModel.Transaction.READ_UNCOMMITTED / /YourModel.Transaction 未定义
猜你喜欢
  • 2019-12-29
  • 1970-01-01
  • 2022-01-23
  • 2021-12-27
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
相关资源
最近更新 更多