我应该在每次执行之后还是在循环之后进行提交

2024-04-20 05:55:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个循环中插入了2000个 我执行sql

我的问题是:我应该在每次执行之后还是在循环之后进行提交,以便将对锁定表的影响降到最低,而不关心缓冲区?你知道吗

问题是:我的脚本发送了很多查询,它们都在等待

我不询问提交中x行的sql限制,也不询问代码中的回滚。我的问题是关于在oracle服务器闲置半天的队列以及一些等待和阻止新进程运行的问题。你知道吗


Tags: 代码服务器脚本sql队列进程缓冲区oracle
1条回答
网友
1楼 · 发布于 2024-04-20 05:55:00

2000个插页几乎等于零。不过,如果您可以使用一个INSERT语句同时插入它们,这比在循环中插入要好得多。你知道吗

一般来说,完成事务后提交。它很可能不会在每一个转弯处结束,是吗?此外,在循环中提交(经常)会导致ORA-01555 snapshot too old error。你知道吗

说“你的脚本发送了很多查询”-什么样的查询?SELECT没有被任何东西阻止。INSERT也没有被阻塞(我猜您没有锁定整个表,是吗)?如果您试图更新被其他用户锁定的行,那么很明显,在它们被释放之前,这是行不通的。问题是:为什么这些查询要等半天?闻起来像是管理不善。你知道吗

相关问题 更多 >