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

SQL Server:IF EXISTS výrazně zpomaluje dotaz

Zkusili jste spustit původní dotaz s TOP 1? s největší pravděpodobností to bude stejně pomalé.

Někdy, když se optimalizátor domnívá, že je něco velmi pravděpodobné a vrátí rozsáhlou sadu dat s malým úsilím (tj. téměř všechny záznamy se vrátí), zvolí většinou spojení smyčky, protože potřebuje získat pouze první a smyčkové připojení je dobré pro získání pouze několika záznamů. Když se ukáže, že to není pravda, trvá věčnost a den, než se výsledky dostaví.

Ve vašem případě to zní jako velmi vzácné, takže tato volba velmi bolí. Zkuste místo toho udělat něco jako SELECT @count = COUNT(*) FROM ... a poté zkontrolujte, zda je tento počet nenulový.



  1. GoLang – Trvalé používání znakové sady ISO-8859-1

  2. Jak volat uloženou proceduru v JDBC

  3. ORACLE SQL:Vytvořte nový řádek na základě rozsahu dat

  4. Jaký je příkaz k nalezení skriptu existující funkce v postgresql?