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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top