sql >> Databáze >  >> RDS >> Oracle

Podmínky spojení na více sloupcích versus jednoduché spojení na zřetězených sloupcích?

Myslím, že verze se zřetězením bude prakticky vždy pomalejší.

Pokud má některý ze sloupců, které porovnáváte jednotlivě, indexy, databáze bude normálně moci použít indexy k optimalizaci spojení. Když porovnáváte zřetězení, musí provést úplné prohledání tabulky, protože výsledek výpočtu nebude v indexu.

A i když sloupce nejsou indexovány, databáze může stále provádět porovnání efektivněji. Porovnává vždy jeden pár sloupců a může se zastavit, jakmile jedno z těchto porovnání selže. Při použití zřetězení musí nejprve zkombinovat všechny sloupce v obou řádcích a poté provést porovnání řetězců.

A konečně, pokud je některý ze sloupců číselný, bude zřetězení vyžadovat další krok převodu čísla na řetězec.



  1. Když odstranění řádku v postgres nesníží sériové pk?

  2. Funkce zabezpečení v SQL Server 2017

  3. Jak vložit data do Winform TreeView (C#) v efektivním kódování?

  4. Vyberte malá a velká písmena pomocí mysql, php a pdo