@@ -975,10 +975,10 @@ ERROR: could not serialize access due to read/write dependencies among transact
975
975
<para>
976
976
<productname>PostgreSQL</productname>中的谓词锁,像其他大多数数据库系统一样,
977
977
基于通过事务实际访问的数据。这些显示在<link linkend="view-pg-locks"><structname>pg_locks</structname></link>
978
- 系统视图中,并带有<literal>SIReadLock</>的<literal>模式 </>。
978
+ 系统视图中,并带有<literal>SIReadLock</>的<literal>mode </>。
979
979
查询执行期间获得的谓词锁取决于使用的查询计划,在事务期间多个细粒度锁(例如,元组锁)可能被组合成较少的粗粒度的锁(例如,页锁),以防止用于跟踪锁的内存耗尽。
980
- <literal>只读 </>事务可以在完成之前释放SIRead锁,如果它检测到不会发生可能会导致串行化异常的冲突。事实上,
981
- <literal>只读 </>事务在启动时经常可以建立这样的事实,并且避免获取任何谓词锁。如果你明确要求<literal>SERIALIZABLE READ ONLY DEFERRABLE</>事务,这将阻塞直到它可以建立这一事实。
980
+ <literal>READ ONLY </>事务可以在完成之前释放SIRead锁,如果它检测到不会发生可能会导致串行化异常的冲突。事实上,
981
+ <literal>READ ONLY </>事务在启动时经常可以建立这样的事实,并且避免获取任何谓词锁。如果你明确要求<literal>SERIALIZABLE READ ONLY DEFERRABLE</>事务,这将阻塞直到它可以建立这一事实。
982
982
(这是<emphasis>唯一</>的可串行化事务会阻塞而可重复读事务不会阻塞的情况。)另一方面,SIRead锁经常需要保持到事务提交以后,直到重叠的读写事务完成。
983
983
</para>
984
984
@@ -1028,7 +1028,7 @@ ERROR: could not serialize access due to read/write dependencies among transact
1028
1028
<!--
1029
1029
Declare transactions as <literal>READ ONLY</> when possible.
1030
1030
-->
1031
- 尽可能把事务声明为<literal>只读 </>。
1031
+ 尽可能把事务声明为<literal>READ ONLY </>。
1032
1032
</para>
1033
1033
</listitem>
1034
1034
<listitem>
@@ -2169,7 +2169,7 @@ SELECT pg_advisory_lock(q.id) FROM
2169
2169
当使用这种技术时,如果应用软件经过框架,
2170
2170
并且这个框架会自动重试由于可串行化失败而导致回滚的事务,
2171
2171
那么可以避免产生不必要的负担。
2172
- 设置<literal>default_transaction_isolation</>为<literal>可串行化 </>也许是一个很好的主意。
2172
+ 设置<literal>default_transaction_isolation</>为<literal>serializable </>也许是一个很好的主意。
2173
2173
采取一些措施确保没有使用其它事务隔离级别可能也是明智的,或者是无意的或者破坏完整性的检查,
2174
2174
通过在触发器中的事务隔离级别检查。
2175
2175
@@ -2313,7 +2313,7 @@ SELECT pg_advisory_lock(q.id) FROM
2313
2313
在可重复读事务里获取的锁保证了不会有其它修改该表的事务正在运行,
2314
2314
但是如果事务看到的快照早于锁的获取,那么它可能早于这个表中现在已经提交的改变。
2315
2315
一个可重复读事务的快照实际上是在它的第一个查询或者数据修改命令(<literal>SELECT</>, <literal>INSERT</>,
2316
- <literal>UPDATE</>, 或 <literal>DELETE</>)开始的时候冻结的,
2316
+ <literal>UPDATE</> 或 <literal>DELETE</>)开始的时候冻结的,
2317
2317
因此我们可以在快照冻结之前明确获取锁。
2318
2318
</para>
2319
2319
</sect2>
0 commit comments