sql >> Databasteknik >  >> RDS >> Sqlserver

Hibernate Query körs långsamt i systemet, men snabbt när den körs direkt

Från beskrivningen av ditt problem låter det som att du stöter på parametersniffning. I huvudsak skapar SQL Server en frågeplan baserad på en äldre uppsättning parametervärden som skickades in och som inte skapar en effektiv exekveringsplan för den aktuella frågan.

Vanligtvis löser jag det här problemet genom att skicka parametervärdena till lokala variabler och använda dem i min fråga eller genom att använda OPTION (RECOMPILE). Men eftersom du använder Hibernate är min vanliga lösning inte ett alternativ för dig. Som jag förstår det kommer det bästa alternativet att vara att använda Hibernate för att köra en inbyggd SQL-fråga med prepareStatement() eller createSQLQuery() som tyvärr tar bort några av fördelarna med att använda Hibernate.



  1. Fel vid installation av mysql2:Det gick inte att bygga gem native extension

  2. oracle raderingsfråga tar för lång tid

  3. Hur bygger jag en parametriserad PDO-sats i PHP för en dynamisk fråga?

  4. MySQL-fråga för att hitta vänner och antal gemensamma vänner