King Lully: LIKE vs. Stringfunktionen

Beitrag lesen

T-SQL, MS SQL Server 2000, Windows 2003, mittelaltes Desktop-Gerät:

  
-- Tabelle befüllen  
declare  
 @i int  
set  
 @i = 1  
while (@i <= 1000000)  
 begin  
 --  
 insert  
  DT_1  
   (  
   DF_1  
   )  
  VALUES  
   (  
   cast(@i as char(50))  
   )  
 set  
  @i = @i + 1  
 --  
 end  
--  
  
-- Abfrage mit left()  
declare  
 @StartDate datetime  
declare  
 @EndDate datetime  
set  
 @StartDate = getdate()  
select  
 count(*)  
from  
 DT_1  
where  
 (left(DF_1, 3) = '1')  
set  
 @EndDate = getdate()  
print  
 datediff(millisecond, @StartDate, @EndDate)  
--  
  
-- Abfrage mit LIKE  
declare  
 @StartDate datetime  
declare  
 @EndDate datetime  
set  
 @StartDate = getdate()  
select  
 count(*)  
from  
 DT_1  
where  
 (DF_1 like '1%')  
set  
 @EndDate = getdate()  
print  
 datediff(millisecond, @StartDate, @EndDate)  
--  

LIKE gewinnt (ohne Index) in verschiedenen Varaiationen mit ca. 600ms gegen 500ms.  LOL