- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在监视 v$session 中的等待事件时,我观察到处于“等待”状态的 session 数量以及“enq:TM 争用”事件。
像下面这样的查询是从不同的 session 运行的,并且没有一个表有任何外键约束。
INSERT /* APPEND */ INTO tabA SELECT /*+ PARALLEL(t,4) */<select list> FROM tabX t;
INSERT /* APPEND */ INTO tabA SELECT /*+ PARALLEL(t,4) */<select list> FROM tabY t;
INSERT /* APPEND */ INTO tabA SELECT /*+ PARALLEL(t,4) */<select list> FROM tabZ t;
etc
此等待事件的原因是什么。
最佳答案
发生这种情况是因为数据库中的多个 session 需要很长时间才能处理某些插入语句。因此,“事件” session 计数非常高,数据库无法接受新的 session 连接。
解决方案:
enq: TM – 争用事件通常是由于 Oracle DML 操作中的表缺少外键约束造成的。一旦通过向相关表添加外键约束来修复问题,enq: TM – 争用事件就会消失。
等待 enq: TM – 等待执行插入操作的 session 的争用事件几乎总是由于未索引的外键约束造成的。当从属表或子表的外键约束引用父表时,就会发生这种情况表缺少关联键上的索引。如果 Oracle 对子表的外键引用的父表中的主键列执行修改,则会获取子表上的表锁。请注意,这些是全表锁 (TM),而不是行级锁 (TX),因此,这些锁不限于行,而是整个表。当然,一旦获得该表锁,Oracle 将阻止所有其他试图修改子表数据的 session 。一旦您在子表中创建了对引用父表的列执行的索引,由于 TM 争用而导致的等待就会消失。
由于在您的情况下表上没有外键约束,因此您可以检查以下几点:
1) 检查任何相关表是否有任何已禁用
外键。如果找到请启用它们。如果您在启用时遇到问题,请按如下方式检查阻塞 session 并终止它们。
SQL> select a.sid, a.serial#
from v$session a, v$locked_object b, dba_objects c
where b.object_id = c.object_id
and a.sid = b.session_id
and OBJECT_NAME='EMP';
SID SERIAL#
---- --------
753 8910
然后终止这个阻塞 session 。
SQL> ALTER SYSTEM KILL SESSION '753,8910';
session killed.
希望之后您能够启用外键(如果有),然后争用问题将得到解决。
关于oracle - oracle中 'enq:TM contention'等待事件的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41425837/
我偶然发现了这种行为,想知道这是否符合预期(我觉得不对)。 我在一个特定的 tm 结构中强加了一个错误,所有其他的都被破坏了。 这是代码(精简到最低限度以重现问题) int main() {
我使用 tm.plugin.tags 进行情绪分析: pos=sapply(search.corpus,tm_tag_score,tm_get_tags("Positiv")) neg=sapply(
这个问题已经困扰我好一分钟了。我正在开发一个用 C++ 编写的程序,我需要能够在两个不同的服务器之间发送以 ISO8601 编码的时间。这里的主要坚持者似乎是 Windows。 到目前为止,我已经从
namespace abc{ class MyClass{ protected: tm structTime; public: const tm&
我正在使用tm包对修复数据进行文本分析,将数据读取到数据框中,转换为Corpus对象,并应用了各种方法来使用Lower,stipWhitespace,removestopwords等清除数据。 取回C
我最近一直在尝试使用 tm 包在 R 中的 data.frame 中的单个列中查找词频。虽然 data.frame 本身有许多基于数字和字符的列,但我只对一个纯文本列感兴趣。虽然我在清理文本本身时没有
我正在尝试使用 tm 包对俄语文本进行一些文本挖掘,但遇到了一些问题。 预处理速度很大程度上取决于编码。 library(tm) rus_txt<-paste(readLines('http://li
我有一个 URL 列表,我已为其获取 web 内容,并将其包含到 tm 语料库中: library(tm) library(XML) link <- c( "http://www.r-statisti
我正在尝试清理语料库,并且使用了典型步骤,如下面的代码: docs?@[\\\]^_ {|}~`。要删除其他符号,例如打印引号或项目符号(或任何其他符号),请声明您自己的转换函数: removeSpe
我试图从我构建的语料库中删除一些单词,但它似乎不起作用。我首先遍历所有内容并创建一个数据框,按照频率顺序列出我的单词。我使用此列表来识别我不感兴趣的单词,然后尝试创建一个删除单词的新列表。但是,这些词
我正在尝试突出显示 PDF 文档中的文本,但我发现了一个带有以下操作数的 Tm 运算符: 0 7.98 -7.98 0 90.8898 715.4183 Tm Tm 运算符应该仅在其操作数上替换文本矩
高性能任务 View 指出 tm可以使用 snow 进行并行文本挖掘 (High-Performance and Parallel Computing with R)。然而,我没有找到任何例子来说明如
如果我这样做的话,我对如何使用 tm 结构对象有点困惑; printf("The current date is %d-%d-%d\n", now.tm_mon, now.tm_mday, now.t
glibc 版本的 struct tm 有额外的字段 long tm_gmtoff; /* Seconds east of UTC */ const char *tm_zone;
我想在格式结构“tm”中添加秒延迟,所以我运行这段代码: #include #include #include #include #define SEC_PER_DAY 86400 #define S
我有以下带有几个选项的简单选择标签,我想在标题上方的选项值中添加商标 (TM),但是 标签没有改变任何东西。 在选项的上方位置显示 TM 的其他方法是什么? Option Value TM
标准 C/C++ 库中是否有可填充 struct tm 的内容? 更具体地说明我的问题:我希望能够提供一个日期并从中填充 struct tm(例如:1-1-2000 00:00:01。)对于大多数字段
我想将 tm 结构用作类中的静态变量。花了一整天的时间阅读和尝试,但仍然无法正常工作:(如果有人能指出我做错了什么,我将不胜感激 在我的类里面,在 Public 下,我将其声明为: static st
你能举一个使用 tm 的例子吗(我不知道如何初始化那个 struct),当前日期是以这种格式写的 年/月/日? 最佳答案 如何使用tm结构 调用 time() 以获取当前日期/时间(自 1970 年
我有一个字符串,其中包含自纪元以来的微秒数。如何将其转换为时间结构? #include #include #include int main () { struct tm tm;
我是一名优秀的程序员,十分优秀!