sql >> Databasteknik >  >> RDS >> Oracle

Hur man kontrollerar om index används eller inte i Oracle

I Oracle SQL Developer, när du har SQL i kalkylbladet, finns en knapp "Explain Plan", du kan också trycka på F10. När du har kört Explain-planen kommer den att visas längst ner i SQL Developer. Det finns en kolumn "OBJECT_NAME", den kommer att berätta vilket index som används. Till exempel, i en fråga jag precis körde, i den vänstra kolumnen (OPERATION) visar den först "SELECT STATEMENT", sedan SORT (AGGREGAT) och sedan INDEX (RANGE SCAN) och sedan i kolumnen OBJECT_NAME visar den TICKER_IDX1, vilket är namnet på ett index på mitt bord.

Så du kan se via kolumnen OBJECT_NAME vilka index som används.

Det kan hända att Oracle Cost Based Optimizer väljer en suboptimal exekveringsplan. Många gånger kommer uppdatering av statistik att lösa problemet. Andra val är att lägga till ytterligare index, med andra ord ett index med flera kolumner. Du kan antyda en SQL-sats, men det behövs sällan. Det är också möjligt att skriva om frågan.



  1. MySQL Workbench Alternatives - ClusterControls Peka-och-klicka GUI

  2. Hur man använder ora_hash på en kolumn med datatypen xmltype

  3. Hur man hårdkodar where-villkoret i listvyn, grundläggande sökning, förhandssökning i sugar CE

  4. Hur kan jag göra en Optional JOIN med SQL