🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #3906

Re: query probleem

#3906
From: Sjoerd Schreuder
Date: Wed, 01 Oct 2003 13:56
41 lines
3111 bytes
Passero wrote:
> 
> Telkens wanneer ik onderstaande query wil uitvoeren loopt mijn pc vast. Ik
> heb al geprobeerd in VB6 door het in de recordsource te zetten van een ADODC
> en in een DB programma van mysql voor query's. Mijn computer loopt gewoon
> vast en ik kan niet anders doen dan een reset. Nogtans klopt de query want
> enkel als ik de access equivalant van de DB gebruik en de query in access
> uitvoer lukt het. In mysql met een mysql db niet dus. Weet iemand raad?

Weet je zeker dat je computer "vast loopt", of is hij gewoon erg lang
bezig met het uitrekenen van de resultaten? Je doet een join over drie
tabellen. Als je geen indices hebt, kan dat errug lang duren.

Dus: welke indices heb je staan? Indices op de PKs is bijna
verplicht. Indices op de FKs kan in een aantal gevallen ook
helpen, afhankelijk van hoe de aanpak van je query is.

Verder zou je een "SELECT COUNT(1) FROM ..." kunnen doen om te kijken
hoeveel resultaten je hebt. En dan geen DISTINCT of ORDER BY, want dat
kost alleen maar extra tijd. Bij grotere aantallen ligt het voor de hand
dat je query een boel tijd nodig heeft.

> Hier de query:
> 
> SELECT DISTINCTROW REPERTORIUM.ZAAKNR, REPERTORIUM.HOEDANIGHEID,
> AKTEN.REPNR, AKTEN.AARD, AKTEN.ONDERWERP, KLANTEN.FAMNAAM, KLANTEN.VOORNAAM,
> KLANTEN.VOLGNR_AKTE, KLANTEN.ALLEEN_OF_SAMEN FROM (AKTEN INNER JOIN
> REPERTORIUM ON AKTEN.ZAAKNR = REPERTORIUM.ZAAKNR) INNER JOIN KLANTEN ON
> REPERTORIUM.KLANTNR = KLANTEN.KLANTNR ORDER BY REPERTORIUM.ZAAKNR,
> KLANTEN.VOLGNR_AKTE

Ziet er normaal uit. Is die DISTINCTROW echt nodig?

Je zou de inner joins impliciet kunnen maken:
FROM AKTEN, REPERTORIUM, KLANTEN
WHERE AKTEN.ZAAKNR = REPERTORIUM.ZAAKNR
  AND REPERTORIUM.KLANTNR = KLANTEN.KLANTNR
Dat is waarschijnlijk makkelijker te optimaliseren. Maar ik denk niet
dat het daaraan ligt.

Sjoerd Schreuder
Technical Details
Message-ID: <3F7ADCF6.5459EB8E@wanadoo.nl>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-09!supernews.com!newshosting.com!news-xfer1.atl.newshosting.com!diablo.voicenet.com!in.100proofnews.com!in.100proofnews.com!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
References: <oJAeb.51435$io6.2252917@phobos.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,7a865f12d18a6328
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,7a865f12d18a6328
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-10-01 06:56:55 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-09!supernews.com!newshosting.com!news-xfer1.atl.newshosting.com!diablo.voicenet.com!in.100proofnews.com!in.100proofnews.com!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
Message-ID: <3F7ADCF6.5459EB8E@wanadoo.nl>
Date: Wed, 01 Oct 2003 15:56:06 +0200
From: Sjoerd Schreuder <sa_schreuder@wanadoo.nl>
X-Mailer: Mozilla 4.7 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: query probleem
References: <oJAeb.51435$io6.2252917@phobos.telenet-ops.be>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 41
Organization: Wanadoo
NNTP-Posting-Date: 01 Oct 2003 13:56:47 GMT
NNTP-Posting-Host: vuurmuur.geodan.nl
X-Trace: DXC=fV5]EOC_Mh`0NJ^:hHIOOkSKYkiiVZ:6o@dNZjVVfAHgIVH4<Rc2]db<Cok\nK^WjjB`Y`gM[1A[hEl;TV9h8DMlJMTlARfgaifU56WXPZAP\l
X-Complaints-To: abuse@wanadoo.nl