select * from vw_table 查询全部 时间需要1分钟 select * from vw_talbe where date>='2008/07/01' 查询时间需要3分钟 date字段有做index
date是日期型的吗? select * from vw_talbe where datediff(d,'2008-07-01',date)>=0 试试
有时候是很怪,估计是和数据的比例有关系,我写between '' and '' 就特慢 写成下面这样就快很多,很邪!select * from where datediff(d,creatdate,'2008-01-01')<=0 and datediff(d,creatdate,'2008-02-01')>=0
查询全部 时间需要1分钟
select * from vw_talbe where date>='2008/07/01'
查询时间需要3分钟
date字段有做index
select * from vw_talbe where datediff(d,'2008-07-01',date)>=0 试试
写成下面这样就快很多,很邪!select * from
where datediff(d,creatdate,'2008-01-01')<=0
and datediff(d,creatdate,'2008-02-01')>=0
你的语句select * from vw_talbe where date>='2008/07/01' where条件里面是时间和时间进行比较嘛,不是,是字符串类型和字符串类型比较,这是我觉得他变慢的原因,你在这儿还用到了index,起到了相反的作用。这是我的观点,欢迎板砖。
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
insert into @t select 'aaaa',getdate()
select *
from @tselect cast(createtime as nvarchar(40)) as sum
from @t
where createtime>='2008/06/32'
消息 242,级别 16,状态 3,第 15 行
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。同事小强友情赞助。说明一个问题,不是像我预想的向字符串类型转化,是字符串向时间类型转化,看来我说的是有问题的。
YOUR RIGHT,
THS