sql >> Database >  >> RDS >> Sqlserver

IN clausule beperking in SQL Server

Ja, er is een limiet, maar MSDN geeft alleen aan dat het "in de duizenden" ligt:

Het opnemen van een extreem groot aantal waarden (vele duizenden) in een IN-clausule kan bronnen verbruiken en fouten 8623 of 8632 retourneren. U kunt dit probleem omzeilen door de items in de IN-lijst in een tabel op te slaan.

Als we deze fouten in detail bekijken, zien we dat deze limiet niet specifiek is voor IN maar is van toepassing op de complexiteit van zoekopdrachten in het algemeen:

Fout 8623:

De queryprocessor had geen interne bronnen meer en kon geen queryplan maken. Dit is een zeldzame gebeurtenis en wordt alleen verwacht voor extreem complexe query's of query's die verwijzen naar een zeer groot aantal tabellen of partities. Vereenvoudig de zoekopdracht. Als je denkt dat je dit bericht ten onrechte hebt ontvangen, neem dan contact op met de klantenservice voor meer informatie.

Fout 8632:

Interne fout:een limiet voor expressieservices is bereikt. Zoek naar potentieel complexe uitdrukkingen in uw zoekopdracht en probeer ze te vereenvoudigen.



  1. SQLiteDatabase android IllegalStateException

  2. PHP Fatale fout:Klasse 'PDO' niet gevonden

  3. Hoe JSON-gegevens op te halen uit MySQL?

  4. Dubbele rijen vinden in SQL Server