Se hur frågetimeout fungerar i Oracle JDBC-drivrutinen här:https://forums. oracle.com/forums/thread.jspa?threadID=550257
Lång historia kort:
- Det tar en hel tur och retur till databasen för att avbryta SQL-körningen när timeouten går ut. Databasen kommer att hantera avbrytningsförfrågan när det känns så.
- Förartidsgränsmekanismen är inte en högprecisionsmekanism. Eftersom att faktiskt avbryta exekveringen kräver att man pratar med databasen över nätverket, är det ingen idé att göra drivrutinen superprecis. Även om drivrutinen var exakt, skulle nätverksfördröjningarna och tiden som krävs för databasen att svara på avbrytningsförfrågan förneka förarens precision. Så timeout är den MINIMUM tid som drivrutinen kommer att ge SQL för att exekvera innan en avbrytning skickas till servern.