20. september 2007 - 07:47Der er
1 kommentar og 1 løsning
Deadlock ved select?
Denne select:
SELECT TOP 20 id,name FROM Members WHERE id NOT IN (SELECT TOP 20 id FROM Members WHERE latestActivity >= '2007-09-18' ORDER BY hasMemberImage DESC, login) AND latestActivity >= '2007-09-18' ORDER BY hasMemberImage DESC, login
Kan ind imellem give mig en deadlock når der er stort load på mit website. Hvordan kan en select give en deadlock og vil det hjælpe at placere sætningen i en transaktion? Eller skal der noget andet til?
TRANSACTION ISOLATION LEVEL skal ændres. Prøv at google. Du kan også benytte en cursor og definere den som FASTFORWARD READONLY (jeg gætter syntaxen her).
Ellers lav din sql om til at bruge join som er mindre tung med nolock hint: SELECT TOP 20 m1.id,m1.name FROM Members WITH (NOLOCK) m1 LEFT JOIN Members WITH (NOLOCK) m2 ON m2.id =m1.id AND m2.latestActivity >= '2007-09-18' WHERE m2.id IS NULL AND latestActivity >= '2007-09-18' ORDER BY hasMemberImage DESC, login
Syntax kan være forkert.
Synes godt om
Ny brugerNybegynder
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.