Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: SQL Abfrage über mehrere Tabellen beschleunigen

  Alt 15. Nov 2007, 12:26
Zitat von hirnstroem:
Meine bisherigen Versuche, die Indizierung verschiedener Felder zu aktivieren / deaktivieren, hat bisher nichts gebracht.
Schau dir mal die ON - Verknüpfungen an:
SQL-Code:
          ON [Application].[ApplicationID] =[Device].[ApplicationID])
        ON [Building].[BuildingID] =[Device].[BuildingID])
      ON [DeviceType].[DeviceTypeID] =[Device].[DeviceTypeID])
    ON [Floor].[FloorID] =[Device].[FloorID])
  ON [Room].[RoomID] =[Device].[RoomID])
ON [Device].[DeviceID] = [Device_Key].[DeviceID])
Die Felder auf der linken Seite (also [Application].[ApplicationID], usw.) sind ja alles Primärschlüsselkandidaten.
Ich hoffe du hast auf allen 6 Tabellen einen Primärschlüssel gesetzt.
Die Felder auf der rechten Seite ([Device].[ApplicationID], ...) sind alles Fremdschlüssel.
Alle diese Felder sollten einen Index haben.
Dabei hast du die Wahl zwischen je einem Index pro Fremdschlüsselfeld und der Kombination mehrerer Fremdschlüsselfelder zu einem Index.
Wenn ein Index mehrere Felder umfasst, hat das gewisse Performancevorteile; aber nur dann wenn alle beteiligten Felder auch in der Abfrage benützt werden. (es gibt noch Ausnahmen von dieser Regel, aber das führt im Moment zu weit)
Andreas
  Mit Zitat antworten Zitat