免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: killerzf
打印 上一主题 下一主题

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-07-28 07:46 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

这些命令在连数据库人不多的时候得到的,等下发人多的时候的帖子给各位大侠看看

论坛徽章:
0
12 [报告]
发表于 2004-07-28 07:56 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

锁的数目为20W也不是很多,你那个表里有300W的数据 ,你要看一下,你UPDATE时还有多少表(其它)与这个插入表有关联,那么20W也不是很多,我的机子现在就有40W锁,到了数据量大的时候 ,我就得提升为60W
。如此看来,你的20W不是很多了吧??你的“NUMBER OF LOCK”只用了61M内存,也不是很多,还可以提,不过,不要用太多的内存,对性能是有影响的。

论坛徽章:
0
13 [报告]
发表于 2004-07-28 14:39 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

我的内存有1g,机器的性能还是可以的,但是有时候系统资源占的不是很多,但数据库会造成死锁

论坛徽章:
0
14 [报告]
发表于 2004-07-28 15:12 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

killerzf, 12.5.0.3支持监控number of locks
请将以下的输出贴上来,谢谢

sp_monitorconfig 'number of locks'

我正在做一个试验,等结果出来了,再看吧

论坛徽章:
0
15 [报告]
发表于 2004-07-28 16:30 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

Name                      Num_free    Num_active  Pct_act Max_Used    Reused
----                      ----------- ----------- ------- ----------- ------
number of locks                260000           0   0.00       258520 NA

论坛徽章:
0
16 [报告]
发表于 2004-07-28 16:53 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

我的推断:
你的number of locks 配置为260000
而历史上最高的为258520. 并没有超过这个配置,因此,我觉得现在应该没有锁不够的错误了。

但能够达到258520这么高,也比较罕见了。

因为根据你的HWM, LWM, PCT的设置,当你的页锁超过200时,就会升级为表级锁。
我create了一个300000条纪录的表,然后全部update一遍,number of locks配置成了可以允许的最小值1000,也没有出现锁不够的情况。

我分析为,当你update10几万条记录时,sybase本想升级为表级锁,可是由于有其他的用户也在更新表,导致无法升级。因此锁越用越多,直至耗尽。

所以,我的建议是,如果你知道你要大批量的修改表中的数据,不如直接锁定表,然后操作:
begin tran
lock table table_name in  exclusive mode
do your update
commit

lock table还可以加超时

论坛徽章:
0
17 [报告]
发表于 2004-07-29 07:49 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

谢谢,joey,我这里还有这个情况,就是我要update的表一旦是表锁定的话,就会导致其他数据无法插入,因为我们单位是税务局,如果将表锁定就会使纳税人无法进行纳税申报,而且特别是9号10号的时候纳税人特别多,一旦让他们等的时间长的话,要怨声载道的

论坛徽章:
0
18 [报告]
发表于 2004-07-29 09:19 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

我不知道你这个大的update通常需要多少时间,通常每天执行几次?为何不放到夜间呢?
如果这个update很快,例如10几秒,那么对其他的用户应该没有什么影响的。

论坛徽章:
0
19 [报告]
发表于 2004-07-29 11:16 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

我的这个表有些日子是一天执行好几次,不能放在晚上,晚上没人上班的。是不是主要还是要修改这张表的人太多了,我们下面有8个所,如果同时有两个所进行操作,就是相当于2个人同时操作update 300w的表中20w条记录,还有其他人对这张表进行零星的插入操作。不知道有什么办法把这个问题给解决了,哎,joey,比较困惑呀

论坛徽章:
0
20 [报告]
发表于 2004-07-29 14:01 |只看该作者

我的sybase数据库的锁已经加到20w了,为什么仍然说锁不够

如果说两个所同时操作的内容为一样的话,那么时管理的问题。
如果两个所必须做各自的操作,那么可以让他们协调错开一下时间。
这时,管理应该是最重要的。

其实,夜间做也没问题的呀,做成自动任务不就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP