sql >> Database >  >> RDS >> Oracle

Hoe te controleren of index wordt gebruikt of niet in Oracle

In Oracle SQL Developer, als je SQL in het werkblad hebt, is er een knop "Leg plan uit", je kunt ook op F10 drukken. Nadat u het Explain-plan hebt uitgevoerd, wordt het weergegeven in de onderste weergave van SQL Developer. Er is een kolom "OBJECT_NAME", deze zal u vertellen welke index wordt gebruikt. Bijvoorbeeld, in een query die ik zojuist heb uitgevoerd, wordt in de linkerkolom (OPERATION) eerst "SELECT STATEMENT" weergegeven, vervolgens SORT (AGGREGATE) en vervolgens INDEX (RANGE SCAN) en vervolgens in de kolom OBJECT_NAME wordt TICKER_IDX1 weergegeven, wat de naam van een index op mijn tafel.

U kunt dus via de kolom OBJECT_NAME zien welke indexen worden gebruikt.

Het kan voorkomen dat de Oracle Cost Based Optimizer kiest voor een suboptimaal uitvoeringsplan. Vaak zal het bijwerken van statistieken het probleem oplossen. Andere keuzes zijn het toevoegen van extra indexen, met andere woorden een index met meerdere kolommen. U kunt een SQL-instructie hinten, maar dat is zelden nodig. Het is ook mogelijk om de query te herschrijven.



  1. Verbind MS SQL Server-database met Oracle 11g-database

  2. Mysql-wachtwoord hashmethode oud versus nieuw

  3. Juiste query om het huidige aantal verbindingen in een PostgreSQL DB te krijgen

  4. Hoe de primaire sleutel van Django te vervangen door een ander geheel getal dat uniek is voor die tabel?