常见问题 的常见问题>>

锁冲突严重造成事务超时或失败

发布时间:2010-12-01 14:09:35

答案:

该问题一般出现在使用关系数据库的系统中,锁冲突是指同一类型或不同类型事务在并发执行情况下,由于资源互斥而互相影响,造成单个或多个事务无法正常执行或无法执行(死锁)的情况。

    对于已发布系统的数据库服务器性能问题,我们可以通过以下步骤进行优化解决。

    a) 监控性能相关数据:搜集与数据库性能表现密切相关的数据(各处理单元的状态、数据库会话的状态信息等),可以作为分析性能问题的基础。
    b )定位资源占用较大的数据并进行优化调整:如果某事务是属于占用大量数据库锁的应用逻辑事务(通常属于批处理事务),可以将其放在空闲时间较多的夜间进行。
    c )定位锁冲突,修改冲突严重的应用逻辑:通过数据库锁使用情况进行信息分析,可以定位发生锁冲突的各会话,在此基础上对各会话的自执行状态变化以及结构化查询语句进行分析,从而定位发生锁冲突的应用逻辑程序。对该问题的解决一般需要开发人员对事务本身的特性和应用逻辑本身比较了解。
    d )对规模较大的数据进行数据分布:通过数据分布,可以使得单一事务执行具有较短的响应时间,另外也可以减小不同事务间的相互影响。该方法主要适用于对规模较大的数据库表进行访问的情况。
数据库性能问题主要表现在响应时间过长、并发处理能力差、锁冲突严重等方面,解决这方面的问题往往是一个迭代和不断往复的过程,往往需要在各种条件下寻求最佳平衡点。

本FAQ适用范围

下一步您可以:
查看产品 >>