`
looyo
  • 浏览: 61850 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

sqlserver 中的nvarchar 和varchar 导致的全表搜索及死锁问题。

阅读更多
我的程序代码如下。sqlserver2008数据库,表T_USER.USERNAME 类型为varchar(50)。用sqlserver 的profiler工具查看到

sqlserver实际接受到的username的参数值为  N'kk'.USERNAME为主键,由于传入参数类型为nvarchar而实际字段类型类型为varchar,导致对全表的scan,而非seek。  业务忙时为照成死锁问题。
有没有好的解决方法。将字段类型修改成nvarchar不算。



		
try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			Connection con = DriverManager.getConnection(
					"jdbc:sqlserver://oradb:1433;DatabaseName=MYDB;", "sa",
					"sa123456");
			PreparedStatement ps = con
					.prepareStatement("select * from T_USER where USERNAME=?");

			ps.setString(1, "kk");

			ResultSet rs = ps.executeQuery();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
分享到:
评论

相关推荐

    sqlserver死锁处理

    ### SQL Server 死锁处理详解 #### 一、引言 在 SQL Server 数据库系统中,当两个或多个事务在等待对方释放资源时,就会发生死锁现象。...希望本文能够帮助读者更好地理解和处理 SQL Server 中的死锁问题。

    sqlserver2005 查看死锁和kill死鎖

    通过以上自定义存储过程,不仅可以轻松地检测到SQL Server 2005中的死锁情况,还可以手动终止导致死锁的进程,从而有效避免了长时间的数据锁定,确保了数据库系统的稳定性和可用性。在实际应用中,建议定期检查是否...

    SqlServer查询和Kill进程死锁的语句

    在SQL Server中,死锁是两个或多个事务在等待对方释放资源而形成的一种相互等待的状态,导致这些事务无法继续执行。处理死锁通常需要监控死锁的发生并采取相应的解决措施。本文将详细介绍如何查询和解决SQL Server中...

    21天学通SQL Server 第二版,有需要可以看看

    SQL Server的数据类型是理解数据库设计的基础,包括数值类型(如INT、DECIMAL)、字符串类型(如VARCHAR、NVARCHAR)、日期时间类型(如DATE、DATETIME)等。此外,了解索引的原理和使用,如非聚簇索引与聚簇索引的...

    sqlserver2000中如何自动杀死死锁进程.pdf

    在SQL Server 2000中,死锁是数据库系统中常见的问题,它发生在两个或多个事务相互等待对方释放资源而无法继续执行的情况。解决死锁通常需要手动干预,但可以通过创建存储过程来自动化这个过程。以下是如何在SQL ...

    SQL Server 2005 T-SQL增强

    - **大型对象支持**: 新增了`VARCHAR(MAX)`, `NVARCHAR(MAX)`和`VARBINARY(MAX)`等类型,用于存储大文本、图像和其他二进制数据。 - **XML数据类型**: SQL Server 2005支持原生的XML数据类型,允许直接在数据库中...

    SQL Server开发人员应聘常被问的问题妙解汇总

    了解SQL Server支持的数据类型对编写高效查询至关重要,如整数类型(int、smallint、tinyint)、浮点类型(float、real)、字符串类型(varchar、nvarchar)、日期时间类型(date、time、datetime)等。 #### 3. T-SQL语言 ...

    培训SQL Server 2005

    - **事务和并发控制**:掌握事务的ACID属性,以及如何处理并发问题,如死锁和隔离级别。 - **安全性**:用户权限管理,角色,以及如何保护数据库资源。 - **备份和恢复**:学习如何备份数据库以防止数据丢失,以及在...

    SQL Server面试公司常用测试题_2

    以下是一些基于SQL Server的常见面试问题和相关知识点,这些问题可能会在实际工作中频繁出现。 1. **SQL Server基础知识** - **数据库引擎**:SQL Server提供了一个强大的关系型数据库管理系统,负责存储、处理和...

    Sqlserver面试题Crystal(内置3份)

    以下是对“Sqlserver面试题Crystal(内置3份)”中可能涉及的一些核心知识点的详细说明: 1. **SQL基础**: - **数据类型**:了解SQL Server中的基本数据类型,如INT、VARCHAR、NVARCHAR、DATE、BIT等。 - **DML...

    50种方法优化SQL Server数据库查询

    在IT行业中,优化SQL Server数据库查询是提升系统性能的关键步骤之一。本文将深入解析50种方法,旨在帮助数据库管理员和开发人员优化SQL Server数据库查询效率。这些方法涵盖了多个方面,包括索引优化、硬件配置调整...

    C#的Sql server学习笔记

    ### C#连接与操作SQL Server...以上内容总结了如何使用C#连接SQL Server数据库,以及如何处理并发更新、锁定行、表,以及解决死锁等问题。通过理解和应用这些概念和技术,可以有效地提高数据库应用的性能和稳定性。

    24小时SQL教程

    7. **事务与并发控制**:了解SQL Server 2005中的事务管理,包括BEGIN、COMMIT、ROLLBACK语句,以及并发问题的解决方案,如锁机制和死锁处理。 8. **视图与存储过程**:创建和使用视图以简化复杂的查询,以及编写、...

    SQL Sever 2000参考手册

    以上只是SQL Server 2000参考手册中部分内容的概览,实际手册中还包含了更详细的使用指南、最佳实践和问题解决方案,对于学习和掌握SQL Server 2000的操作和管理至关重要。通过阅读"TSQLREF.CHM"这个CHM格式的帮助...

    百万数据查询优化技巧三十则

    - **问题**:使用 `VARCHAR` 或 `NVARCHAR` 而不是 `CHAR` 或 `NCHAR` 可能导致不必要的空间浪费。 - **建议**:对于固定长度的字符字段,使用 `CHAR` 或 `NCHAR` 可以节省存储空间,同时提高查询效率。 #### 知识...

    用C#数据库备份与恢复核心代码

    在C#中,实现数据库的备份与恢复功能通常涉及到SQL Server的T-SQL语句和ADO.NET的数据访问技术。根据给定的文件信息,我们可以详细解析其中涉及的关键知识点。 ### 数据库备份的核心代码解析 在C#中进行数据库备份...

    【微软SQL2008精编】

    ### SQL Server 2008 锁机制与数据库设计 #### 一、SQL Server 2008 锁机制详解 ##### 1.1 SELECT * FROM table WITH (HOLDLOCK) `SELECT * FROM table WITH (HOLDLOCK)` 是SQL Server 2008中的一个非常重要的...

Global site tag (gtag.js) - Google Analytics