【问题标题】:Can unicode chars in sql queries cause slow db performance?sql 查询中的 unicode 字符会导致数据库性能变慢吗?
【发布时间】:2011-12-22 10:31:56
【问题描述】:

在查询中使用 unicode 字符会导致数据库变慢吗?

我正在使用类似

的查询
Select * from table where name='xyz¿½'

在此查询之后,我的应用程序会永久变慢,直到我重新启动它。

我正在使用 c3p0 hibernate 的连接池

【问题讨论】:

  • name 列是否已编入索引?它是什么类型的?你用的是什么数据库?
  • 是什么变慢了——客户端上的应用程序或对服务器的查询——就像所有性能问题一样,衡量哪个位慢。
  • 你使用的是什么数据库服务器?

标签: sql database performance hibernate


【解决方案1】:

现代数据库应该支持 Unicode,但这可能仅限于某些数据类型。

例如,SQL Server 仅支持以下数据类型的 Unicode:

nchar
nvarchar
nvarchar(max) – new in SQL Server 2005
ntext 

Unicode 字符串常量(比如在存储过程/函数中)应该以字母 N 开头,例如N'abcd'

【讨论】:

    【解决方案2】:

    我发现当查询包含 unicode 字符时 sybase 不使用索引。这可能是由于我的版本中的一些字符集设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 2010-10-06
      相关资源
      最近更新 更多