Redian新闻
>
求救,这个更新如何写?
avatar
求救,这个更新如何写?# Database - 数据库
c*3
1
是不是先在网上efile 140,收到Confirmation Receipt Notice后,根据收据信件上面
的地址和case number,在7天内邮寄证明材料?
谢谢!
avatar
m*t
2
在版上看到有mm做的手工皮包包,自己也想做一个双肩的,但是不知道料子去哪里买。
大家有什么建议呢?谢谢
avatar
w*m
3
其实说起来很简单,有两张表,
A(a1, a2, a3, a4)
B(b1, b2, b3, b4)
B表大约有30 million记录,A表大概有12万记录
为了加新的速度,我用了下面的script,可是总是出现
ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$"
too small
请教大家,这种情况如何改进?包子相赠求解
1. create two indexes for two tables,
create index Ai on A(a1, a2);
create index Bi on B(b1, b2);
2. save the following script as x.sql, and run it,
set SERVEROUTPUT ON
DECLARE
CURSOR v_cursor IS
SELECT a1, a2 FROM A;
total NUMBER :=0;
BEGIN
FOR i IN v_cur
avatar
j*2
4
我的是在ebay上买的 ebay上专门有些买皮子的卖家 信誉都比较好 但是自己得对皮子
稍微有些了解
不然光看图 也不知道是个怎么回事 尤其是 多厚 多大尺寸的 皮子的尺寸跟布不一样

【在 m****t 的大作中提到】
: 在版上看到有mm做的手工皮包包,自己也想做一个双肩的,但是不知道料子去哪里买。
: 大家有什么建议呢?谢谢

avatar
w*m
5
http://space.itpub.net/14209224/viewspace-573125
这篇文章说了一些关于这个错误的解决方法,不过我还是不明白如何解决我的错误。

$"

【在 w*m 的大作中提到】
: 其实说起来很简单,有两张表,
: A(a1, a2, a3, a4)
: B(b1, b2, b3, b4)
: B表大约有30 million记录,A表大概有12万记录
: 为了加新的速度,我用了下面的script,可是总是出现
: ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$"
: too small
: 请教大家,这种情况如何改进?包子相赠求解
: 1. create two indexes for two tables,
: create index Ai on A(a1, a2);

avatar
m*t
6
恩 谢谢mm 不知道mm可以稍微介绍一下分类吗 谢谢
avatar
b*g
7
怨不得你看不懂呢,这翻译也忒...咋听着跟我儿子说的中文似的。 看看英文解释:
http://www.dba-oracle.com/t_ora_01555_snapshot_old.htm
大意是说你的代码在读数据时有一致性错误。
估计你定义CURSOR时指向A表,UPDATE COMMIT时又是对A表。
你这段SQL必须用到TRANSACTION吗?

【在 w*m 的大作中提到】
: http://space.itpub.net/14209224/viewspace-573125
: 这篇文章说了一些关于这个错误的解决方法,不过我还是不明白如何解决我的错误。
:
: $"

avatar
m*t
8
在版上看到有mm做的手工皮包包,自己也想做一个双肩的,但是不知道料子去哪里买。
大家有什么建议呢?谢谢
avatar
w*m
9
en,我明白这个意思,怎么改呢? 数据量实在是太大了,寸步难行啊

【在 b******g 的大作中提到】
: 怨不得你看不懂呢,这翻译也忒...咋听着跟我儿子说的中文似的。 看看英文解释:
: http://www.dba-oracle.com/t_ora_01555_snapshot_old.htm
: 大意是说你的代码在读数据时有一致性错误。
: 估计你定义CURSOR时指向A表,UPDATE COMMIT时又是对A表。
: 你这段SQL必须用到TRANSACTION吗?

avatar
j*2
10
我的是在ebay上买的 ebay上专门有些买皮子的卖家 信誉都比较好 但是自己得对皮子
稍微有些了解
不然光看图 也不知道是个怎么回事 尤其是 多厚 多大尺寸的 皮子的尺寸跟布不一样

【在 m****t 的大作中提到】
: 在版上看到有mm做的手工皮包包,自己也想做一个双肩的,但是不知道料子去哪里买。
: 大家有什么建议呢?谢谢

avatar
b*g
11
120K should be fine.
try comment out the if block:
IF MOD(total,100)=0 THEN
...
END IF
I am not sure about Oracle's transaction mechanism, but I suppose change
will put everything in a big transaction block. The final "commit;" will
commit the transaction.

【在 w*m 的大作中提到】
: en,我明白这个意思,怎么改呢? 数据量实在是太大了,寸步难行啊
avatar
m*t
12
恩 谢谢mm 不知道mm可以稍微介绍一下分类吗 谢谢
avatar
w*m
13
10.2.0.4

【在 b******g 的大作中提到】
: 120K should be fine.
: try comment out the if block:
: IF MOD(total,100)=0 THEN
: ...
: END IF
: I am not sure about Oracle's transaction mechanism, but I suppose change
: will put everything in a big transaction block. The final "commit;" will
: commit the transaction.

avatar
b*6
14
google tandy
you're welcome
avatar
b*g
15
I was thinking something else. Anyway, could you just run the UPDATE:
UPDATE A
SET (A.a3, A.a4)=(SELECT b3, b4 FROM B WHERE A.a1=B.b1 AND A.a2=B.
b2)
Is there any specific reason you want to commit every 100 records?

【在 w*m 的大作中提到】
: 10.2.0.4
avatar
s*y
16
fabric.com和Joann都有很多faux leather
avatar
w*m
17
直接update不行,非常非常慢,这是最初的方案。
后来改成加index,每100行 commit 一次。对相对比较小的数据没问题。
可是碰到这个30million数据就不行了。

【在 b******g 的大作中提到】
: I was thinking something else. Anyway, could you just run the UPDATE:
: UPDATE A
: SET (A.a3, A.a4)=(SELECT b3, b4 FROM B WHERE A.a1=B.b1 AND A.a2=B.
: b2)
: Is there any specific reason you want to commit every 100 records?

avatar
b*g
18
在Explain Plan里先看看你的SQL,看看慢在什么地方。

【在 w*m 的大作中提到】
: 直接update不行,非常非常慢,这是最初的方案。
: 后来改成加index,每100行 commit 一次。对相对比较小的数据没问题。
: 可是碰到这个30million数据就不行了。

avatar
w*m
19
我最后决定用create temp_table as (select*** left join * on ..)去做了。自己测
试了一下,大概30分钟可以完成30million的更新了。下周再到实际项目上测试看看。

【在 b******g 的大作中提到】
: 在Explain Plan里先看看你的SQL,看看慢在什么地方。
avatar
y*w
20
1. 这不是个典型的merge么?
2. 如果因为数据量太大...找你们的dba。或者自己加条件分解成一些小的merge/
update.
3. 索引是必须的。

$"

【在 w*m 的大作中提到】
: 其实说起来很简单,有两张表,
: A(a1, a2, a3, a4)
: B(b1, b2, b3, b4)
: B表大约有30 million记录,A表大概有12万记录
: 为了加新的速度,我用了下面的script,可是总是出现
: ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$"
: too small
: 请教大家,这种情况如何改进?包子相赠求解
: 1. create two indexes for two tables,
: create index Ai on A(a1, a2);

avatar
w*m
21
thanks.问题已经解决了。

【在 y****w 的大作中提到】
: 1. 这不是个典型的merge么?
: 2. 如果因为数据量太大...找你们的dba。或者自己加条件分解成一些小的merge/
: update.
: 3. 索引是必须的。
:
: $"

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。