SQL Quiz

Published 17 April 08 07:42 PM

Jeg sidder og læser lidt op på SQL ting, og jeg synes ligsom så mange andre, at Microsoft SQL server er et fremragende, gennemført og optimalt værktøj som man bør bruge, hvis ens applikation arbejder med en database.

Jeg er ikke SQL Server expert, så bær over med mig, hvis denne quiz er for nem.

Hvis du har en SQL 2005 database tabel med, lad os sige, 100.000 rækker i, og spørger om følgende:

SET STATISTICS IO ON

IF(SELECT COUNT(*) FROM records WHERE (uniqueValue = 'Daniel')) > 0

PRINT 'count: yes'

IF EXISTS(SELECT * FROM records WHERE (uniqueValue = 'Daniel'))

PRINT 'exists: yes'

Hvad går hurtigtst ?

Jeg sætter en bog eller to på højkant for et korrekt svar :0)

Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Mark S. Rasmussen said on April 17, 2008 3:26 PM:

De kører præcis lige hurtigt. Optimizeren går ind og ændrer din første query så begge internt fungerer som en EXISTS, dvs. de begge blot leder efter første matchende record og derved returnerer true. Af samme grund vil dine IO statistics også være identiske.

Optimizeren kan naturligvis kun foretage denne ændring ved "> 0" queries da disse netop svarer til EXISTS. Hvis der ikke står > 0, så vil planen ej heller være den samme og resultatet vil således være anderledes - men det er så heller ikke så relevant da queries i så fald ikke længere vil være semantisk identiske :)

# danielmf said on April 17, 2008 3:40 PM:

Hej Mark.

Du er skarp, og korrekt svar.

Du har også ret i dit "> 0", dog kun hvis der ikke befinder sig et index på kollonen. Hvis der findes et index er de igen lige hurtige, uanset.

Jeg sender dig en bog :0)

# Mark S. Rasmussen said on April 17, 2008 4:37 PM:

Korrekt :) Så længe vi kan holde os fra scans så vil de performe ens i den henseende. Jeg ser frem til læsestoffet, nu er det vel ikke skønlitterært? ;)

# deldy said on April 19, 2008 3:44 AM:

Det er sikkert PHP for Dummies :)

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

This Blog

Syndication

Page view tracker