`
ronghao
  • 浏览: 449926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
E9473dd5-1985-3883-ac98-962354ca10b3
张小庆,在路上
浏览量:8570
社区版块
存档分类
最新评论

sqlserver2000并发测试下的一些问题

阅读更多

测试在sqlserver2000上进行,对工作流操作的相关方法在单元测试里进行多线程并发。测试发现sqlserver出现死锁的情况相当多,一些典型的情况:


1、对同一张表先insert再update是很快会引起死锁的,不管操作的是否是同一记录
解决方法:对于同一记录,需要调整hibernate的映射策略,使得一次insert完成操作。对于不同的记录需要在代码中手动flush,使得update先于insert。


2、对两张表进行多次update操作时,两张表交替update也会很快引起死锁
解决方法:在代码中手动flush,保证对两张表的update不会出现交替的情况。


3、部分大范围扫描的select和update混合也会导致死锁
解决方法:优化sql,尽量减少sql语句,通过给po增加持久化字段的方式减少关联查询

经过优化,大部分情况下数据库死锁的情况得以避免,另外奇怪的是通过事件探查器在死锁时并未发现锁升级的事件。但是在一些特殊情况下(例如多个并发汇聚的直接联合),死锁依旧发生。最后不得不对方法进行synchronized关键字同步,这个通过synchronized flush完成。业务方法不必同步,最后批量操作数据库时进行同步。

换oracle进行测试,在未synchronized的情况下,未发生死锁情况。由此可见sqlserver与oracle锁实现机制存在很大的差别。对sqlserver鄙视之。另,同事说,sqlserver2005后性能和机制发生了很大的变化,未测试。

3
0
分享到:
评论

相关推荐

    sqlserver并发连接测试

    测试sql 并发用户 测试,可下载自行进行代码更新

    SQL SERVER 2000开发与管理应用实例

    本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...

    Microsoft SQL Server 2005技术内幕:存储引擎(中文).pdf

    除此之外,她还是SQL Server Magazine的优秀编辑和专栏作家,她还写作了大量的SQL Server类书籍,包括著名的Inside Microsoft SQL Server2000。 目录 前言 致谢 引言 第1章 SQL Server 2005 的安装与升级  1.1 ...

    Microsoft SQL Server 2005技术内幕: T-SQ程序设计.pdf

    该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-SQL编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解...

    sqlserver2000基础(高手也有用)

    9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 9.5.2 程序中的文件存取处理方法 292 第 10 章 作业 295 10.1 作业...

    SQL Server并发处理存在就更新解决方案探讨

    本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案。...

    SQL Server数据库的性能分析和优化策略研究

    随着计算机科学技术和电子信息的巨大发展 ,各个企业都建立起 了各 自的信息系统。而数据库作为信息系统的核心和基 础,也被越来越广泛的应用。...从数据库设计人员的角度出发讨SQL数据库性能优化的问题。

    探讨SQL Server并发处理队列数据不阻塞解决方案

     SQL Server并发处理队列数据问题  在我们的项目中对于购买产品的用户会对应分配卡密,同时会更新其卡密的状态为已使用,所以当出现并发时此时我们不加以控制会导致同一个卡号和密码被不同的用户所使用,这样的...

    asp+sqlserver2000网络书店系统.zip

    这将提高应用程序的并发能力和响应性能,确保用户在高负载情况下仍然能够流畅地使用应用程序。 性能优化:我们将使用一系列性能优化技术来提高应用程序的性能。这包括使用高效的算法和数据结构、使用缓存技术和...

    asp+sqlserver2000在线考试系统.zip

    这将提高应用程序的并发能力和响应性能,确保用户在高负载情况下仍然能够流畅地使用应用程序。 性能优化:我们将使用一系列性能优化技术来提高应用程序的性能。这包括使用高效的算法和数据结构、使用缓存技术和...

    Robot进行数据库的并发测试[1]

    ROBOTRobot进行数据库的并发测试[1]软件测试第一步:创建演示程序:打开SQLSERVER查询分析器,在SQLSERVER测试数据库中执行下列脚本(脚本执行操作:创建表testtable,并插入一条记录;创建存储过程test):ifexists...

    华南理工大学2020年数据库实验4(SQLserver编写)

    实验要求: 1.采用实验一的建库脚本和数据插入脚本创建... 分别设置不同的隔离级别, 让两个并发事务交错执行的程序或事务,能分别显示每种隔离级别下,是否出现丢失更新,脏读,读值不可复现以及幻象记录四种情况。

    SQLQueryStress 【压力测试工具】

    非常使用的一款数据库压力测工具, 快捷方便, 测试准确。 有了它, 测试并发情况下的事务和锁就简单了。

    Sql。query。stress

    Sqlserver并发测试必备之宝!有了它,测试并发情况下的事务和锁就简单了。

    asp+SQLServer网上书店系统设计(源代码+thesis).zip

    这将提高应用程序的并发能力和响应性能,确保用户在高负载情况下仍然能够流畅地使用应用程序。 性能优化:我们将使用一系列性能优化技术来提高应用程序的性能。这包括使用高效的算法和数据结构、使用缓存技术和...

    HammerDB-3.1-Linux-x86-64-Install

    HammerDB可以支持多种主流的数据库系统,包括Oracle、MySQL、PostgreSQL、SQL Server等,同时还提供了多种测试场景和数据类型选择。 HammerDB的特点是易于使用、性能强大、可扩展性强和开源免费等。它经常被数据库...

    服务器性能测试报告.docx

    暂无 2、测试环境 2.1 硬件环境 系统硬件与网络环境如下: 应用服务器硬件配置: Server Name CPU MEM 16GB memory HardDisk 2.2 软件环境 服务器 1台 操作系统 Windows Server 2003 数据库 Microsoft SQL Server ...

    MD3000存储测试

    1. 测试磁盘阵列MD3000在Win Server 2008 MSCS+SQL Server2008 群集,应用环境中的可行性。 2. 测试磁盘阵列MD3000在Linux Rat Hat 4 U6+Oracle 10g RAC应用环境中的可行性。 3. 测试该存储阵列在多台主机并发...

    kbmMW2.61体验

    用Delphi7开发,通讯架构使用kbmMW 2.61,数据库使用sqlserver。客户端压力测试使用多线程并发,server端接收数据采用内存表memtable,通过临界区控制并发。 源码有偿提供,提供技术支持 QQ:14668609 Email:...

Global site tag (gtag.js) - Google Analytics