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

Den samme SQL-forespørgsel tager længere tid at køre i én DB end en anden DB under den samme server

Det faktum, at du har to databaser på samme server og med samme datasæt (som du sagde), sikrer ikke samme eksekveringsplan.

Her er nogle af grundene til, at forespørgselsplanen kan være anderledes:

  • mdf- og ldf-filer (for hver database) er på forskellige drev. Hvis onedrives er hurtigere, vil databasen også køre forespørgslen hurtigere.
  • stoppede statistikker. Hvis du har en database med nyere statistik end den anden, har SQL bedre chancer for at vælge en ordentlig (og
    hurtigere) eksekveringsplan.
  • Indekser:Jeg ved, at du sagde, at de begge er identiske, men jeg vil tjekke, om du har samme type indekser på begge.

Fokuser på at se, hvorfor forespørgslen kører langsomt, eller se den faktiske udførelsesplan i stedet for at sammenligne. Hvis du tjekker den faktiske udførelsesplan for den langsomme forespørgsel, får du et hint om, hvorfor det kører langsommere.

Jeg ville heller ikke tilføje en NO LOCK-erklæring for at løse problemet. Efter min erfaring kan de fleste langsomme forespørgsler tunes op via kode eller indeks, i stedet for at tilføje et NO LOCK-tip, der kan få dig til at ændre eller gamle resultatsæt, afhængigt af dine transaktioner.



  1. Sådan finder du dubletter i MySQL

  2. Fejlfinding AlwaysOn – Nogle gange kræver det mange sæt øjne

  3. Hvordan forbinder/kombinerer man to tabeller, når man eksporterer Mysql-data til Excel Download?

  4. Hvordan vælger jeg kun en del af en enorm binær (fil)?