sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server:HVIS EKSISTERER sænker en forespørgsel massivt

Prøvede du at køre den oprindelige forespørgsel med TOP 1? højst sandsynligt vil det være lige så langsomt.

Nogle gange, når optimeringsværktøjet mener, at noget er meget sandsynligt og vil returnere et stort sæt data med en lille indsats (dvs. næsten alle poster vil blive returneret), vælger den for det meste loop joins, fordi den kun behøver at få den første og en loop join er god til kun at få et par poster. Når det viser sig ikke at være sandt, tager det evigheder og en dag at få resultater.

I dit tilfælde lyder det som om det er meget sjældent, så dette valg gør ondt. Prøv i stedet at gøre noget som SELECT @count = COUNT(*) FROM ... og derefter kontrollere, om tallet ikke er nul.



  1. Wildfly kunne ikke indlæse modul til Oracle Driver

  2. java.sql.SQLEundtagelse:ORA-01652:ude af stand til at udvide temp-segmentet med 128 i tablespace TEMP (selv efter forlængelse)

  3. Hvornår kaldes SQLiteOpenHelper onCreate-metoden?

  4. Gør SQL Server-ydeevne let