Just nu i M3-nätverket
Gå till innehåll

Vilken fråga är effektivare / snabbare?


FiEnD

Rekommendera Poster

Hej!

 

Jag och en kompis har tvistat lite om vilken fråga som går fortast att köra / om de går lika fort att köra av dessa typer:

 

Fråga1:

select Fieldname from tbl_TableName where Field1 = '0' or Field2 = '0' or Field3 = '0' or Field4 = '0' .....

 

eller

 

Fråga2:

select Fieldname from tbl_TableName where 0 in (Field1, Field2, Field3, Field4....)

 

Vad har ni för erfarenheter att dela med er utav? :)

Min tanke är att fråga 2 skulle vara bättre / snabbare att använda sig utav.

 

Mvh Fredrik

 

Länk till kommentar
Dela på andra webbplatser

-Patrik Johansson-

Jag ser det inte som självklart att fråga 2 skulle vara snabbare. Visst det beror väl på hur in-funktionen implementeras men jag misstänker att även den skrivs om till någon slags boolskt uttryck i databasen... så jag skulle nog säga att frågorna är likvärdiga.

 

//Patrik J

"Insanity: doing the same thing over and over again and expecting different results."
- citat av Albert Einstein

 

[inlägget ändrat 2005-02-23 23:35:12 av -Patrik Johansson-]

Länk till kommentar
Dela på andra webbplatser

Fråga 2 ser enklare ut, men det betyder inte (precis som Patrik konstaterat) att den också är snabbare. Databashanterare måste ändå tolka om frågan till sin "interna språk" och då blir frågorna förmodligen lika. Den måste ju ändå jämföra med samma fält.

 

Vad använder du för databas? I de flesta databashanteringssystem kan du prestandatesta SQL-frågor, utifrån hur många rader som måste läsas och jämföras osv...

 

_________

TicoRoman - Anfall är bästa försvar

 

Länk till kommentar
Dela på andra webbplatser

Jag / vi använder både MySQL och MS-SQL som databaser.

Skulle gärna vilja få lite tips på hur man prestandatestar dessa olika frågor på dessa två system.

(förrutom att kolla körtiden i QueryAnalyzern då alltså)

 

Mvh Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...