---
title: "Snabbast?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/86655-snabbast"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Erik Juhlin"
published: "2003-09-22T15:01:18.000Z"
updated: "2003-09-23T15:52:43.000Z"
replies: 4
views: 294
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/86655-snabbast"
---

# Snabbast?

## #1 — Erik Juhlin, 2003-09-22T15:01Z

Vilken av dessa SQLer är snabbast? En ranking hade varit schysst! :D
Spelar i.o.f.s. ingen roll i det jag gör just nu, men kan vara trevligt att veta i framtiden. :)

```
1.
SELECT * FROM tblOgrish
WHERE OgrishFooId IN (SELECT FooId FROM tblFoo WHERE FooFrobId = 123)

2.
SELECT * FROM tblOgrish
WHERE EXISTS (SELECT FooId FROM tblFoo WHERE FooFrobId = 123 AND OgrishFooId = FooId)

3.
SELECT * FROM tblOgrish
WHERE (SELECT COUNT(FooId) FROM tblFoo WHERE FooFrobId = 123 AND OgrishFooId = FooId) > 0

4.
SELECT o.* FROM tblOgrish o
INNER JOIN tblFoo f ON f.FooFrobId = 123 AND f.FooOgrishId = o.OgrishId
```

Permalänk: https://www.webforum.nu/p/86655

## #2 — LarsG, 2003-09-22T15:15Z

Därom kan man inget säga.  Det beror på hur optimeringen fungerar i den DBMS du använder. I och med att de returnerar samma resultat så är det inget som hindrar att man har exakt samma exekveringsplan för alla frågorna.

Jag skulle nog anända exists då den är enklast att optimera.
(Förmodligen är den sista långsammast, då de flesta DBMS nog kommer att räkna ut COUNT.  Om FooFrobId och FooId utgör hela primärnyckeln i tblFoo så borde det inte ha någon praktisk roll.)

Du kan inte jämföra 4:an med de andra, då det inte är säkert att de ger samma resultat.

Permalänk: https://www.webforum.nu/p/1164288

## #3 — Erik Juhlin, 2003-09-22T17:38Z

Okej! :)

Permalänk: https://www.webforum.nu/p/1164348

## #4 — Engine^, 2003-09-22T23:56Z

Av det jag kommer ihåg av vad jag läst på MSDN, så ska det vara snabbare att använda sig av EXISTS - enligt någon av deras kolumnister dom har. Jag kommer inte ihåg namnet, men jag vet att jag hittade artikeln efter en massa sökning på "optimizing queries". Om det nu är så kan jag inte svara på och som vanligt verkar **LarsG** vara rätt säker på sin sak.

> **Erik Juhlin skrev:**
>
> En ranking hade varit schysst!

En snäll liten loop som är kompis med en timer brukar ge svar på sånt :)

Permalänk: https://www.webforum.nu/p/1164626

## #5 — grillkillen, 2003-09-23T15:52Z

Jag har också fått för mig att det bör gå snabbast med EXISTS.

Permalänk: https://www.webforum.nu/p/1164983

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/86655-snabbast
