Ok,
habe gerade gesehen, dass ich die mehreren Selects in der SELECT auch
zusammenfassen kann:
SELECT tblLinks.*, tblTarget.fldName as extfldName,
tblFunction.fldPage as extfldPage, tblFunction.fldAddFields as
extfldAddFields,tblLinks.fldImage_1 AS fldImage FROM (tblLinks INNER JOIN
tblTarget ON tblLinks.fldTarget = tblTarget.fldID) INNER JOIN tblFunction ON
tblLinks.fldFunction = tblFunction.fldID WHERE fldShow=-1 AND fldSubLink=0
AND (fldDomainNo=0 OR fldDomainNo=1) AND ((IsNull(fldDateStart) OR NOT
fldDateStart>#6/13/2003#) XOR (fldCalendar=-1)) AND (IsNull(fldDateEnd) OR
NOT fldDateEnd<#6/13/2003#) AND (EXISTS (SELECT fldLinkID FROM tblLinkCat
WHERE fldLinkID=tblLinks.fldID AND ( fldCatID=122 OR fldCatID=123 OR
fldCatID=124 OR fldCatID=125 OR fldCatID=126 OR fldCatID=127))) ORDER BY
tblLinks.fldID DESC
SELECT Count(*) FROM (tblLinks INNER JOIN tblTarget ON
tblLinks.fldTarget = tblTarget.fldID) INNER JOIN tblFunction ON
tblLinks.fldFunction = tblFunction.fldID WHERE [$language$] fldShow=-1 AND
fldSubLink=0 AND (fldDomainNo=0 OR fldDomainNo=1) AND ((IsNull(fldDateStart)
OR NOT fldDateStart>#6/13/2003#) XOR (fldCalendar=-1)) AND
(IsNull(fldDateEnd) OR NOT fldDateEnd<#6/13/2003#) AND (EXISTS (SELECT
fldLinkID FROM tblLinkCat WHERE fldLinkID=tblLinks.fldID AND ( fldCatID=122
OR fldCatID=123 OR fldCatID=124 OR fldCatID=125 OR fldCatID=126 OR
fldCatID=127)))
Bin jetzt auf ca. 9 Sek.
Aber m�sste es nicht eigentlich noch besser gehen??
Ciao
Janko
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, June 12, 2003 11:13 AM
Subject: Re: [Database.asp] Welche Datenbank sollte ich nutzen
> Hallo!
>
> Ein Index bedeutet immer zus�tzlichen Verwaltungsaufwand. Das gilt nicht
nur
> f�r UPDATE- oder INSERT-Befehle, die dann zus�tzlich in die Indextabelle
> schreiben, sondern auch f�r SELECT-Befehle, die dann die Indextabelle
zus�tzlich
> lesen m�ssen. So ist es nicht verwunderlich, dass ein SELECT mit weniger
> Indizes schneller ist. Der "Umweg" �ber die Indextabelle kann langsamer
sein,
> als wenn eine kleinere Restdatenmenge im Speicher sortiert wird.
>
> Eine Beschleunigung erh�ltst Du oft auch nur mit zusammengesetzten
Indizes.
> Die erste Spalte in der WHERE-Klausel sollte auch einen Index haben, die
> anderen Spalten nur, wenn die Rest-Datenmenge auch gro� genug ist, damit
sich der
> Umweg �ber die Indextabelle auch lohnt, also z. B. mehr als 100 oder 500
> Datens�tze.
>
> Wenn nicht gerade Unmengen von Daten zur�ckgegeben werden, sollte eine
> Abfrage in Access in maximal 2 Sekunden fertig sein. Wenn Deine Abfrage
langsamer
> ist, dann wahrscheinlich weil Dein SELECT-Befehl eine Tabelle mehrmals
> durchl�uft oder ein CROSS-JOIN enth�lt, oder mehrere SUB-SELECTS enth�lt,
oder ...
> Vielleicht ist es einfacher, wenn Du mal Dein langsames SELECT-Statement
> postest. Dann kann man auch sagen, welche Felder indiziert werden m�ssen
und
> welche nicht.
>
> Freundliche Gr��e
> Joachim van de Bruck
>
> --
> Joachim van de Bruck
> Internet Services
>
> 52531 �bach-Palenberg, Schloss Zweibr�ggen
> phone: +49 (2451) 913473
> email: [EMAIL PROTECTED]
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~sponsored by United Planet~~~~~~~~~~~~~~~~~
> Intrexx.BizWalker + ODBC/OLEDB-Daten = ASP-Formular
> ATTACK! Download Intrexx CRM-Studio Now! http://www.intrexx.com
> _______________________________________________
> Database.asp mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/database.asp
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~sponsored by United Planet~~~~~~~~~~~~~~~~~
Intrexx.BizWalker + ODBC/OLEDB-Daten = ASP-Formular
ATTACK! Download Intrexx CRM-Studio Now! http://www.intrexx.com
_______________________________________________
Database.asp mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/database.asp