Bonjour,

Sur plusieurs serveurs ASE 15.5, nous avons une table T de 5 Millions de rows avec le DDL suivant:
create table T (
UID int not null ,
logOnDtm datetime not null ,
logOffDtm datetime null ,
termID varchar(20) not null ,
autoSignOff varchar(1) null ,
sessionID varchar(255) null
)
lock allpages
le showplan montre que la requete ci-dessous utilise l'index:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select * from T where  T.logOnDtm >= '20120309' and T.logOnDtm < '20120310'
Mais que la requete ci-dessous n'utilise pas l'index:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
declare @startDtm datetime
declare @endDtm datetime
 
select @startDtm = '20120309'
select @endDtm = '20120310'
 
select * from T where  T.logOnDtm >= @startDtm and T.logOnDtm < @endDtm
Pourquoi l'index n'est pas utilisé par l'optimizer dans le 2ieme cas?

Note1: forcer l'index fonctionne = l'index est utilisé
Note2: j'ai essaye plusieurs formats de dates et même de char() sans succes.

Merci
Vincent