1
61
通常的方法是使用更新:
你应该能够做到这是一个单一的交易。 |
2
8
正如马塞洛所说:
如果由于“snapshot too old”(快照太旧)错误(例如,如果表达式查询另一个高度活动的表),并且如果列的新值始终不为NULL,则可以批量更新表:
只要运行这个语句,提交,然后再次运行它;冲洗,重复,直到报告“0行更新”。这将花费更长的时间,但每次更新都不太可能失败。
一个更有效的替代方法是使用
Oracle文档: https://docs.oracle.com/database/121/ARPLS/d_parallel_ex.htm#ARPLS67333 |
3
2
您可以删除表上的任何索引,然后执行插入,然后重新创建索引。 |
4
0
可能对你不管用,但我过去也曾在类似情况下使用过几次这种技术。 创建更新的{table\u name},然后选择insert into this table in batches。一旦完成,这就取决于Oracle(我不知道也不使用)支持以原子方式重命名表的能力。更新后的{table\u name}变为{table\u name},而{table\u name}变为原始的{table\u name}。
|
5
0
|
6
0
更新Hotelid>=30的酒店设置折扣1和Hotelid<=5504 |
7
0
对于Postgresql,我会这样做(如果我们确定不再进行更新/插入):
|
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
Prince · 复制大型文件需要更多时间 2 年前 |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |