|
|
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,我会这样做(如果我们确定不再进行更新/插入):
|
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 2 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 2 年前 |