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

Omezení klauzule IN na serveru SQL Server

Ano, existuje limit, ale MSDN pouze uvádí, že leží „v tisících“:

Zahrnutí extrémně velkého počtu hodnot (mnoho tisíc) do klauzule IN může spotřebovat zdroje a vrátit chyby 8623 nebo 8632. Chcete-li tento problém vyřešit, uložte položky v seznamu IN do tabulky.

Při podrobném pohledu na tyto chyby vidíme, že tento limit není specifický pro IN ale obecně platí pro složitost dotazu:

Chyba 8623:

Procesoru dotazů došly interní zdroje a nemohl vytvořit plán dotazů. Toto je vzácná událost a očekává se pouze u extrémně složitých dotazů nebo dotazů, které odkazují na velmi velký počet tabulek nebo oddílů. Prosím o zjednodušení dotazu. Pokud se domníváte, že jste tuto zprávu obdrželi omylem, požádejte o další informace služby zákaznické podpory.

Chyba 8632:

Interní chyba:Bylo dosaženo limitu expresních služeb. Hledejte ve svém dotazu potenciálně složité výrazy a snažte se je zjednodušit.



  1. python pip install chyba instalace psycopg2

  2. DROP TABLE MySQL

  3. Použití aliasu v klauzuli WHERE

  4. Představujeme Agent-Based Database Monitoring s ClusterControl 1.7