Hallo,
Erst einmal: Ich habe nicht wirklich viel Ahnung von SQL. Leider hat sich mitlerweile heraus gestellt, dass entweder mein query grottig zu sein scheint oder mein Datenbankmodell. Denn diese Abfrage hier dauert ca. 35-40 Sekunden bei vielleicht 50k Einträgen, was ja irgendwie nicht sein kann.
Hier das query:
Wie steht es mit der Abfrage. Ist die prinzipiell in Ordnung und ich müsste vielleicht nach den Indices schauen oder ist die Abfrage ansich schon falsch aufgebaut?
Erst einmal: Ich habe nicht wirklich viel Ahnung von SQL. Leider hat sich mitlerweile heraus gestellt, dass entweder mein query grottig zu sein scheint oder mein Datenbankmodell. Denn diese Abfrage hier dauert ca. 35-40 Sekunden bei vielleicht 50k Einträgen, was ja irgendwie nicht sein kann.
Hier das query:
Code:
SELECT
myDB.idDocBasic as idDocBasic, myDB.number as number,
myDB.title as title, myDB.accessRights as accessRights,
myP.number as projectNumber, myDT.description as docType,
myDC.description as docClass, myR.idRevision as idRevision,
myR.source as source, myU.name as insertedBy, myR.dateCreation as creationDate,
myR.creator as creator, myR.isExternalDoc as isExternalDoc,
myR.externalDocNo as externalDocNumber, myR.idRefIntern as internalDocNumber,
myR.idBill as idBill, myR.attachmentKeywords as attKeywords, myR.receiver as receiver
FROM myDocumentBasics as myDB
INNER JOIN myProjects as myP ON myDB.idProject = myP.idProject
INNER JOIN myDocumentTypes as myDT ON myDB.idDocType = myDT.idDocumentType
INNER JOIN myDocumentClasses as myDC ON myDB.idDocClass = myDC.idDocumentClass
INNER JOIN myRevisions as myR ON myDB.idDocBasic = myR.idDocBasic
INNER JOIN myUser as myU ON myR.idInsertedBy = myU.idUser
WHERE myR.isLatestRevision = 1 AND myDB.accessRights <= 1
ORDER BY myDB.idDocBasic DESC, myR.idRevision DESC
Wie steht es mit der Abfrage. Ist die prinzipiell in Ordnung und ich müsste vielleicht nach den Indices schauen oder ist die Abfrage ansich schon falsch aufgebaut?