使用date参数查询速度非常慢,但在Sybase中使用日期作为字符串快速查询

时间:2013-09-16 22:55:40

标签: sql database sybase database-performance

我有一个相当直接的查询,它过滤了where子句中的特定日期,如下所示:

declare @a_date date
set @a_date = '2013-09-17' 

select * from table t where t.date = @a_date

以上查询需要大约30分钟才能运行。

将查询更改为以下内容只需几秒钟即可运行:

declare @a_date date
declare @string_date varchar(8)

set @a_date = '2013-09-17' 

set @string_date = convert(varchar(8), @a_date, 112)

select * from table t where t.date = @string_date

我正在使用RapidSQL和iSql在Sybase ASE 12中执行此查询并观察相同的行为。根据Sybase日期转换,兼容的日期字符串格式将自动转换为运算符的RHS中的日期类型。

字段t.date是日期时间数据类型。

为什么会发生这种情况的任何建议?

0 个答案:

没有答案