den Ausführungsplan einer Abfrage zu verstehen,
-
22-07-2019 - |
Frage
Ich habe diese SQL:
SELECT
*
FROM
Requisicao r
join convenio c on c.idconvenio = r.idconvenio
join empresa e on e.idempresa = c.idempresa
Wenn ich es ausführen ich diesen Plan für die Ausführung:
PLAN JOIN (C NATURAL,E INDEX (INTEG_160),R INDEX (INTEG_318))
Was bedeutet, dass Convenio-Index nicht verwendet wurde (jeder Tisch hat seine Indizes)
Ich möchte es ein wenig besser verstehen, so kann ich einige Performance-Probleme verbessern mit diesem System, das ich habe.
Danke.
Lösung
Was ist für Sie falsch zu sein scheint? Da Sie keine Bedingungen (WHERE-Klausel) Server wird eine Tabelle natürlich, das heißt von der ersten Zeile bis zum letzten lesen. Ange Selektivität der Berücksichtigung Index diente entschieden, dass es besser wäre, von c zu lesen und zu verbinden Aufzeichnungen von e und r.
Andere Tipps
Ich bin mit Andrei. Wenn convenio.idconvenio geringe Selektivität hat, der Plan ist in Ordnung.