sql >> Databasteknik >  >> RDS >> Mysql

Påverkar ordningsföljden av tabeller i raka kopplingar, utan antydningsdirektiv, prestanda?

Svar på din fråga - Ja, ordningen på bordet gör skillnad i gå med.

Du kan också meddela optimeraren om exekveringsplanen.

ORDERED-tipset får Oracle att sammanfoga tabeller i den ordning som de visas i FROM-satsen.

Till exempel kopplar denna sats tabell TAB1 till tabell TAB2 och sedan sammanfogar resultatet till tabell TAB3:

 SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
     FROM TAB1, TAB2, TAB3
    WHERE TAB1.COL1 = TAB2.COL1
         AND TAB2.COL1 = TAB3.COL1;

Om du utelämnar ORDERED-tipset från en SQL-sats som utför en join, väljer optimeraren i vilken ordning tabellerna ska sammanfogas. Du kanske vill använda ORDERED-tipset för att ange en sammanfogningsordning om du vet något om antalet rader valda från varje tabell som optimeraren inte har. Sådan information skulle göra det möjligt för dig att välja ett inre och ett yttre bord bättre än vad optimeraren kunde.

Vanligtvis, om du analyserar tabellerna, väljer optimeraren en effektiv stjärnplan. Du kan också använda tips för att förbättra planen. Den mest exakta metoden är att ordna tabellerna i FROM-satsen i ordningen för nycklarna i indexet, med den stora tabellen sist. Använd sedan följande tips:

/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */


  1. Skapa en fråga i SQL Server 2017

  2. SQLite Skapa vy

  3. Hur lägger man till ett nytt språk för mysqls felmeddelanden?

  4. BIN() – Få det binära värdet av ett tal i MySQL