Avatar billede mercutio Nybegynder
22. december 2005 - 15:18 Der er 5 kommentarer

Langsom sql. Kan den optimeres og hvordan?

Hej Eksperter.

Jeg har denne sql som jeg bruger mange gange og den er lidt langsom.

select call_id from g_journal_call_ingoing where sender_member_id =?
or
sender_member_id in(select descendant_id from mbrrel where ancester_id =?)       
union       
select call_id from g_journal_call_outgoing where receiver_Member_Id  =?
or
receiver_member_id in(select descendant_id from mbrrel where ancester_id =?)

Kan i se om den kan skrives på en anden måde der kører hurtigere?
Avatar billede arne_v Ekspert
22. december 2005 - 15:23 #1
hvis du kan leve med det så er UNION ALL normalt hurtigere end UNION
Avatar billede mercutio Nybegynder
22. december 2005 - 15:26 #2
Jeg tror ikke det er min union der er tung. Jeg tror mere det er de to selects. Jeg ville gerne skrive det om til en join men kan ikke lige se hvordan jeg skulle kunne gøre det. Jeg kan heller ikke leve med en union all tror jeg ikke. Så får jeg for mange resultater i sidste ende...
Avatar billede arne_v Ekspert
22. december 2005 - 15:31 #3
har du index på sender_member_id, receiver_Member_Id og ancester_id ?
Avatar billede arne_v Ekspert
22. december 2005 - 15:32 #4
er database specifikke løsninger en mulighed ? og hvis ja - hvilken database bruger du ?
Avatar billede mercutio Nybegynder
22. december 2005 - 16:21 #5
det er en db2 og ja bare det kører hurtigt =)
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