sql >> Database >  >> RDS >> Oracle

Voorwaarden voor samenvoegen op meerdere kolommen versus enkele samenvoeging op aaneengeschakelde kolommen?

Ik denk dat de versie met aaneenschakeling vrijwel altijd langzamer zal zijn.

Als een van de kolommen die u afzonderlijk vergelijkt, indexen heeft, kan de database normaal gesproken de indexen gebruiken om de join te optimaliseren. Wanneer u aaneenschakelingen vergelijkt, moet deze volledige tabelscans uitvoeren, omdat het resultaat van een berekening niet in de index staat.

En zelfs als de kolommen niet zijn geïndexeerd, kan de database de vergelijkingen nog steeds efficiënter uitvoeren. Het vergelijkt één paar kolommen tegelijk en kan stoppen zodra een van die vergelijkingen mislukt. Wanneer u de aaneenschakeling gebruikt, moet deze eerst alle kolommen in beide rijen combineren en vervolgens een tekenreeksvergelijking uitvoeren.

Ten slotte, als een van de kolommen numeriek is, vereist de aaneenschakeling de extra stap van het converteren van het nummer naar een tekenreeks.



  1. MijnSQL. WordPress. Langzame zoekopdracht bij gebruik van IN-instructies

  2. BIT(1) of TINYINT voor vlaggen in MySQL

  3. Wat is de betekenis van de indexnaam bij het maken van een index in MySQL?

  4. ORACLE/SQL:wm_concat &bestel op