由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 急请教sql server while loop memory 问题
相关主题
SQL Server 问题 -- 怎样 UPDADATE 才快Open Too Many Cursor Issue
interview question (SQL)请教一个SQL问题
how to make this query请教SQL server的一个programming的问题,谢谢
open cursor for collection?mysql 问题 (转载)
如何寫此 SQL 查詢?新手请教:为什么这个Query不work
谁能帮我看看这个oracle function有什么错?Urgent SQL problem!
一个sql问题:怎样实现 (((a1*10)+a2)*10+a3)*10 ... (转载)新手求教,plsql collection 参数传入问题,非常感谢。
请问sql 有条件性的select columns其实有个问题好久没有明白!
相关话题的讨论汇总
话题: table话题: loop话题: update话题: memory话题: while
进入Database版参与讨论
1 (共1页)
m*****y
发帖数: 229
1
有没有大牛可以帮我解决个while loop memory hike 问题。
我有个while loop, 大概loop 5000次。 每次while loop有个5000个row的table被
scan一次,然后有个很大的table被update一次。其实我还给这个table加了index。但
不知道为什么,大概run一段时间后整个sql server 窗口就关掉了,好像是memory
hike到一定程度了。 我在task manager里观查memory是一点一点加上去的,然后到一
定程度就cush掉,把整个sql server client给关掉了。不太懂sql server这一块是怎
么工作的,每个while loop不释放memory吗?怎么样可以让每个while loop释放memory
呢?望懂得人指点。不胜感激!
s**********o
发帖数: 14359
2
你先说说干嘛LOOP 5000次去UPDATE同一个TABLE,目的是什么
不用LOOP不行吗?比如JOIN就解决的问题
m*****y
发帖数: 229
3
Sorry I cannot type Chinese on this computer. Thanks for asking. Last night
I was sleepy so it was not clear. Actually I am updating two tables in while
loop.One row update in table 1, and multiple rows update in table 2. if the
update in one table is not successful, then update in both table need to be
rollback. So I have to use loop. If you have any other method for this
situation, then would be very welcome:)
t******a
发帖数: 697
4
trigger 不行么
n******r
发帖数: 44
5
Trigger需要的资源也不小。我觉得二楼问的是关键。当然我不知道楼主的具体情况,
但是感觉楼主的思路还是procedural programming的思路,象Java一样一次操作一个记
录。楼主可能应该考虑一下怎么把思路转成set operation。有没有可能一次操作一组
数据。那才能从根本上解决问题。
s**********o
发帖数: 14359
6
if the update in one table is not successful?为什么会失败呢,是CONNECTION的
问题
还是UPDATE 0 ROW,还是UPDATE的WRONG DATA TYPE?不是有TRY CATCH什么的,我怀疑
是你的TRANSCATION没有CLOSE才会用了一堆MEMORY

night
while
the
be

【在 m*****y 的大作中提到】
: Sorry I cannot type Chinese on this computer. Thanks for asking. Last night
: I was sleepy so it was not clear. Actually I am updating two tables in while
: loop.One row update in table 1, and multiple rows update in table 2. if the
: update in one table is not successful, then update in both table need to be
: rollback. So I have to use loop. If you have any other method for this
: situation, then would be very welcome:)

m*****y
发帖数: 229
7
对楼上和楼上楼上的问题,比如the update of child table was successful, but
the server down or accidentally closed during the update of parent table,
then the update in child table has to be rolled back. 所以我必须一次只能
update one record in parent table and corresponding multiple rows in child
table.
所以set operation我应该也用不到这里。
大概google了一下,貌似while loop 不会在每次loop完释放memory,为的是提高效率
。但还是希望路过的行家解答。
s**********o
发帖数: 14359
8
你这个LOOP就跟CURSOR差不多,效率非常低,为什么不能把要UPDADE数值弄成一个
TABLE,
BEGIN TRAN
UPDATE PARENT
INNER JOIN PREPARED TABLE
UPDATE CHILD
INNER JOIN PREPARED TABLE
COMMIT TRAN

【在 m*****y 的大作中提到】
: 对楼上和楼上楼上的问题,比如the update of child table was successful, but
: the server down or accidentally closed during the update of parent table,
: then the update in child table has to be rolled back. 所以我必须一次只能
: update one record in parent table and corresponding multiple rows in child
: table.
: 所以set operation我应该也用不到这里。
: 大概google了一下,貌似while loop 不会在每次loop完释放memory,为的是提高效率
: 。但还是希望路过的行家解答。

1 (共1页)
进入Database版参与讨论
相关主题
其实有个问题好久没有明白!如何寫此 SQL 查詢?
有没有人用postgres?有个drop table的问题谁能帮我看看这个oracle function有什么错?
面试问题,关于oracle 8i一个sql问题:怎样实现 (((a1*10)+a2)*10+a3)*10 ... (转载)
老印给我的一个Challenge请问sql 有条件性的select columns
SQL Server 问题 -- 怎样 UPDADATE 才快Open Too Many Cursor Issue
interview question (SQL)请教一个SQL问题
how to make this query请教SQL server的一个programming的问题,谢谢
open cursor for collection?mysql 问题 (转载)
相关话题的讨论汇总
话题: table话题: loop话题: update话题: memory话题: while