相关疑难解决方法(0)

varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?

我正在我的学校使用一个小型网络应用程序的数据库SQL Server 2005.
我在varcharvs 的问题上看到了几个思想流派nvarchar:

  1. 使用varchar除非你处理了很多国际化的数据,然后使用nvarchar.
  2. 只是nvarchar用于一切.

我开始看到视图2的优点.我知道nvarchar确实占用了两倍的空间,但这不一定是一个大问题,因为这只是为几百名学生存储数据.对我而言,似乎最简单的是不要担心它并且只允许一切使用nvarchar.还是有什么我想念的?

sql-server storage varchar nvarchar sql-server-2005

232
推荐指数
10
解决办法
16万
查看次数

在nvarchar字符串中搜索时,SQL Server使用高CPU

请查看以下示例.它表明在unicode字符串(nvarchar)中搜索几乎是在varchar字符串中搜索的八倍.与隐含转换相提并论.寻找解释.或者更有效地在nvarchar字符串中搜索的方法.

use tempdb
create table test
(
    testid int identity primary key,
    v varchar(36),
    nv nvarchar(36),
    filler char(500)
)
go

set nocount on
set statistics time off
insert test (v, nv)
select CAST (newid() as varchar(36)),
    CAST (newid() as nvarchar(36))
go 1000000

set statistics time on
-- search utf8 string
select COUNT(1) from test where v like '%abcd%' option (maxdop 1)
-- CPU time = 906 ms,  elapsed time = 911 ms.

-- search utf8 string using unicode (uses convert_implicit) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

26
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql-server ×2

nvarchar ×1

sql-server-2005 ×1

storage ×1

t-sql ×1

varchar ×1