`
looyo
  • 浏览: 59184 次
  • 性别: 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中char、varchar、nchar、nvarchar的区别

    SQLServer中char、varchar、nchar、nvarchar的区别 SQLServer中char、varchar、nchar、nvarchar的区别.txt

    Sqlserver中char,nchar,varchar与Nvarchar的区别分析

    Sqlserver中char,nchar,varchar与Nvarchar的区别分析,使用sqlserver的朋友可以参考下。

    基于SQL Server中char,nchar,varchar,nvarchar的使用区别

    对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将...

    SQL Server中,varchar和nvarchar如何选择?

    varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unico编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会...

    利用索引提高SQLServer数据处理效率

    在当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQL Server应用。实践表明,合理的索引设计是建立在对各种查询的分析和...本文就SQL Server索引的性能问题进行了一些分析和实践。

    完美解决SQL server2005中插入汉字变成问号的问题

    关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“。2.在表中将你的...

    vs自带数据库sql server的中文插入乱码问题、查找当前数据库名

    解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...

    SQL中varchar和nvarchar的基本介绍及其区别

    varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。 nvarchar(n) 包含 n 个字符的可变长度 Unicode ...

    SQL Server 中 text或ntext 字段内容替换方法

    在不确定text或ntext字段长度的时候 SQL Server 中 text或ntext 字段内容替换方法

    sqlserver字段类型介绍

    sqlserver字段类型介绍 数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则...在sqlserver中编写sql语句,nchar、nvarchar都要在字符前面加N,避免出现乱码!!(例如:SET @k=N'abcdefg')

    SQL Server 利用触发器对多表视图进行更新的实现方法

    其步骤就是:利用update操作触发器产生的2个虚拟表【inserted】用来存储修改的数据信息和【deleted】表,然后将对应的数据更新到对应数据表中的字段信息中; 1.首先创建3个表: a.信息表: USE [SQL-LI] BEGIN ...

    解决繁体-批量转化varchar为nvarchar

    因最近自己制作的软件需运行在简繁系统中,但数据库设计时...此脚本可批量处理数据库内所有char和varchar转换为nchar和nvarchar,已集成重建主键,约束,索引,此脚本没有启用事务,运行前请备份原数据库或手动增加事务

    SQL Server Text型字段读取(delphi)

    一直在用ADOQuery读取数据库字段,当遇到SQL Server数据库Text型字段时,一直读取不全,在网上搜索很多遍未解决。试探将asstring 换为 CurValue。成功!

    Sql Server Json解析

    sql server 2014 JSON解析到表函数 CREATE FUNCTION [dbo].[parseJSON]( @JSON NVARCHAR(MAX)) RETURNS @hierarchy TABLE ( element_id INT IDENTITY(1, 1) NOT NULL, ...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    SQLServer表数据转化为sql语句(存储过程,一键批量导出、导入)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件(传空时,导出全部...

    sql中varchar和nvarchar的区别与使用方法

    问: sql server中的varchar和Nvarchar有什么区别啊,varchar好像是一个英文和一个汉字都站两个字节,而Nvarchar则是一个英文占一个字节,汉字占两个字节。可是这个对asp程序有什么影响? 答: varchar(n) 长度为 ...

    SQL Server Table表定义导出工具

    支持所有SQLServer数据类型,一键导出。 由于时间有限,现只能实现字段和主键的导出, 外键及其他约束不能导出,需另行处理,请知悉。 导出效果: USE [MyTest] GO CREATE TABLE [dbo].[tbl_Vendor] ( [VendorID] ...

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

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

Global site tag (gtag.js) - Google Analytics