sql >> Databáze >  >> RDS >> Sqlserver

Spojení SQL versus poddotazy SQL (výkon)?

Očekával bych, že první dotaz bude rychlejší, hlavně proto, že máte ekvivalent a explicitní JOIN. Podle mých zkušeností IN je velmi pomalý operátor, protože SQL jej normálně vyhodnocuje jako řadu WHERE klauzule oddělené "OR" (WHERE x=Y OR x=Z OR... ).

Stejně jako u ALL THINGS SQL se však vaše kilometry mohou lišit. Rychlost bude mimo jiné hodně záviset na indexech (máte indexy na obou sloupcích ID? To hodně pomůže...).

Jediný SKUTEČNÝ způsob, jak se 100% jistotou zjistit, který je rychlejší, je zapnout sledování výkonu (obzvláště užitečné je statistika IO) a spustit oba. Mezi běhy nezapomeňte vymazat mezipaměť!



  1. Příkaz SQL pro použití předdefinovaného seznamu hodnot jako tabulky SQL

  2. SQL Počet dní do prvního v měsíci

  3. Použití MySQL ve Flasku

  4. Oracle - získat název tabulky z textu SQL