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

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 Server并发连接测试是一个涉及多方面知识的复杂过程,包括锁定、事务隔离、并发控制策略、性能调优、资源调度以及故障恢复等。通过有效的并发测试,我们可以确保SQL Server在面临大量并发用户时,仍能...

    SQL Server 2000 并发控制

    本次实验的主要目的是让学生深入理解并发控制机制,特别是针对SQL Server 2000环境下的并发控制。实验将帮助学生了解以下几点: 1. **理解数据不一致性的三种常见形式**:包括脏读、不可重复读以及幻读。 2. **掌握...

    SQL Server2000 SP4企业版精简版8M.rar

    1. **SQL Server 2000企业版**:这是SQL Server 2000系列中的最高版本,支持无限数量的并发用户和最大的硬件扩展,适合大型企业或高负载环境。但"精简版"意味着它可能去除了某些非核心功能,如高级分析服务、复制...

    SQL Server 2000完结篇系列之九:专业的SQL Server 2000性能管理工具

    首先,SQL Server 2000内置了一些基本的性能监控工具,如SQL Server企业管理器(Enterprise Manager)和查询分析器(Query Analyzer)。企业管理器提供了图形化的界面,让用户可以方便地查看和管理数据库对象,如...

    SQL Server 2000 DTS Step by Step

    《SQL Server 2000 DTS Step by Step》是一本深入浅出的教程,主要针对SQL Server 2000中的Data Transformation Services(DTS)进行详细讲解。DTS是微软数据库管理系统中的一个强大工具,用于数据迁移、转换和加载...

    基于SQL Server 2000的实用并发控制技术.pdf

    根据提供的文件内容,可以总结以下关于SQL Server 2000的并发控制技术的知识点: 1. SQL Server 2000并发控制机制:SQL Server 2000提供了复杂的并发控制机制,支持多用户并发访问数据。该机制的关键在于确保事务的...

    SQL Server2000的JDBC驱动程序

    对于SQL Server 2000,驱动类名通常是`com.microsoft.jdbc.sqlserver.SQLServerDriver`,URL格式通常是`jdbc:microsoft:sqlserver://<服务器>:<端口>;DatabaseName=<数据库名>`。 4. 连接:使用`Class.forName()`...

    Sql Server2000 和 SqlServer2005数据库驱动包下载

    在压缩包文件中,"SqlServer"可能包含了这些驱动的下载链接、安装指南或者配置示例。用户需要根据自身需求选择合适的驱动版本,并按照提供的信息进行安装和配置,以确保应用程序能够顺利连接到Sql Server 2000或2005...

    SQL Server 2000 完结篇 性能调优与维护系列视频教程

    - **进程结构**:解析SQL Server 2000中进程的管理和调度方式,以及如何通过合理配置进程参数来改善系统的并发处理能力。 #### 2. 彻底掌握SQL Server 2000体系结构(二)- 存储结构 - **存储机制揭秘**:详细解释...

    SQL Server 2012性能基准测试

    测试结果表明,当Teamcenter运行在SQL Server 2012上时,即使面对10000个并发用户的高负荷情况,系统仍能保持优异的响应速度和稳定性能,体现了SQL Server 2012在支持高并发场景下的强大能力。 #### Redknee:实时...

    SQL Server 2000 70-229中文版部分答案解析(整理版)下

    在SQL Server 2000中,数据库管理和并发控制是至关重要的主题,特别是在涉及多用户环境和复杂的事务处理时。70-229考试主要测试考生对SQL Server数据库管理和性能调优的理解,特别是关于死锁和事务隔离级别的概念。 ...

    sqlserver2000的开发及管理应用实例

    "目录.txt"可能包含上述所有概念的详细章节和示例代码,"SQLServer2000"文件可能是实际的数据库文件或包含实用脚本,供读者实践和学习。通过实际操作,你可以更好地理解和掌握SQL Server 2000的开发与管理,以及如何...

    sqlserver2000开发版.rar

    7. **事务处理和并发控制**:SQL Server 2000使用多种并发控制策略,如锁定、页锁定和行版本控制,确保多用户环境下的数据一致性。 8. **备份与恢复**:提供各种备份类型(完整、差异、日志),以满足不同恢复需求...

    SQL server 2000 (version 8)

    SQL Server 2000(版本8)是微软公司推出的一款关系型数据库管理系统,它在IT领域中扮演...无论是在数据管理、性能优化还是安全性方面,SQL Server 2000都展现出了强大的能力,并且在当时的技术环境下具有很高的价值。

    SQL Server测试题3份

    以下是基于SQL Server 2005的测试题可能涵盖的一些核心知识点: 1. **T-SQL基础**:T-SQL(Transact-SQL)是SQL Server中的扩展SQL语言,用于数据查询、更新和管理。测试可能包括SELECT语句的使用,如JOINs、子查询...

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

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

    SqlServer2000 SqlServer20005 SqlServer20008 Navicat 企业管理器

    Navicat for SQL Server 10.0.11.0_XiaZaiBa.exe是Navicat针对Sql Server的一个版本,可能包含了对该版本数据库管理器的一些特定优化和功能增强。安装这个软件后,用户可以通过其用户友好的界面来管理和操作Sql ...

    SQL Server 2008设置最大连接数

    在SQL Server 2008中,设置最大连接数是一项重要的系统配置,它关乎到数据库服务器的性能和稳定性。此设置决定了同一时间可以有多少个客户端连接到SQL Server实例。了解并正确配置这个参数对于数据库管理员来说至关...

    SQLSERVER_大内存选项开启

    具体而言,一台运行Windows Server 2003企业版和SQL Server 2005企业版的WEB服务器,在面对2000至3000个并发用户时,遭遇了页面响应迟缓、超时等性能问题。尽管CPU和内存使用率并未达到饱和状态,但服务器硬盘的频繁...

Global site tag (gtag.js) - Google Analytics