我正在使用 oracle 数据库,我所做的是
取表 A 的 1 条记录。(表 A 有列 P,假设它的值为 x、y、z)
根据值 x,y,z 将该记录放入表 B 或 C 或 D (如果 P=x 则将记录放入表 B ,如果 P=y 则将记录放入表 C ...)
删除我们插入到表 B 或 C 或 D 中的 A 记录。
注意: A 的大小为 2 亿,B 为 170 C 为 20 D 为 10,因此 A 的大小在减小其他相同(如果 A 记录的参数为负数则不会插入到 B、C、D它存在于这些表中,因此只需将其从表中删除)因此 B、C、D 的大小没有变化,只是 A 的大小随时间减小。
问题是一开始一切都很好,但随着时间的推移,它变得非常缓慢。大约它在 1 秒内进行 40 次插入 + 删除,但及时处理 1 次插入 + 删除在 3 秒内。
所有表在相应的列中都有索引。
并行运行存在但没有锁。
- 表大小约为 6000 万条记录。
如果表没有锁定或大小增加,还有什么其他影响可以及时实现?
注意:这不是不同的进程,在同一个进程中,我单击“执行查询”它开始非常快,但随后非常慢。