Avatar billede conrad Nybegynder
21. april 2006 - 21:18 Der er 5 kommentarer og
1 løsning

performance af delete

hvad performer bedst:

1) delete from TABLE;

2) delete from TABLE where TABLE.field = value; //field er indexeret

3 ) delete from TABLE where TABLE.field = value; //field er IKKE indexeret

situation 1) alle records i TABLE har field 1 der matcher value
situation 2) halvdelen matcher (og vi ser bort fra at der så er records tilbage ved 2 og 3)
Avatar billede arne_v Ekspert
21. april 2006 - 21:25 #1
hvis du vil slette alle records: TRUNCATE TABLE tabelnavn;

hvis du kun vil slette nogen records: DELETE med WHERE paa indexeret felt
Avatar billede conrad Nybegynder
21. april 2006 - 21:50 #2
jeg har ikke mulighed for truncate da jeg kører gennem en sql-motor som genererer T-SQL'en (Axapta/Dynamics AX).

Så det bliver til et spørgsmål om DELETE FROM x eller DELETE FROM x where ..., er lige hurtige når alle records matcher where clausen? (mine målinger viser de er, men jeg har ikke viden nok til at kunne forklare hvorfor det forholder sig sådan)
Avatar billede arne_v Ekspert
21. april 2006 - 21:57 #3
jeg ville raesonere som foelge:

en DELETE med en WHERE som matcher alt vil aldrig kunne vaere hutigere
end en DELETE uden WHERE

=>

brug DELERE uden WHERE fordi muligvis er den hurtigere muligvis er den
ligesom alternativet
Avatar billede conrad Nybegynder
21. april 2006 - 23:00 #4
det lyder fornuftigt. lægger du et svar Arne?
Avatar billede arne_v Ekspert
21. april 2006 - 23:09 #5
ok

du kunn eogsaa vente og se om nogle af DBA'erne havde en kommentar
Avatar billede conrad Nybegynder
24. april 2006 - 15:48 #6
tak arne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester