Lang SQL-wurk: hâld it rinnende as de VPN falt
In fallen VPN lit ien fraach oer dy’t de kliïntflater net beäntwurdzje kin: is it wurk fêstlein? Jou lang wurk oan in duorsume eigner en ferlykje foardat jo opnij besykje.
De VPN falt tweintich minuten nei de start fan in yndekswerbou, jo SQL-kliïnt toant in brutsen ferbining, en de fanselssprekkende fraach hat gjin antwurd yn dy flater. Is de opdracht klear, weromdraaid, of gie er sûnder jo troch? Opnij ferbine en opnij ferstjoere is de minste fan de trije opsjes, want it makket ien ûnwis resultaat ta twa mooglike. Ferpleats it wurk nei eat mei in duorsume eigner foar it folgjende finster.
Wat de ferbiningsflater jo net fertelt
In flater oan de kliïntkant beskriuwt de kliïnt. It meldt dat de socket sletten is, net wat de tsjinner mei de transaksje dien hat. De opdracht kin noch rinne, krekt foar it ferstjerren fan de ferbining fêstlein wêze, of weromdraaid wêze doe’t syn sesje opromme waard. Alle trije jouwe deselde melding op jo laptop.
Allinnich de tastân fan de tsjinner kin dit besljochtsje. Sjoch dêr foardat jo wat dan ek beslute.
Jou it wurk oan in eigner oan de tsjinnerkant
Foar wurk dat gjin minske nedich hat om te besjen, lit de database-host de útfiering besitte. SQL Server Agent rint taken op oanfraach of neffens in skema en registrearret elke run, sadat de libbenssyklus fan ’e taak ûnôfhinklik is fan jo VPN-sesje. De identiteit fan ’e taak hat krekt de tastimmingen nedich dy’t de taak easket, net de folsleine ynteraktive kontekst fan in administrateur. Dan begjint de laptop wurk en lêst resultaten ynstee fan it proses te wêzen dat it libben hâldt.
EXEC msdb.dbo.sp_start_job @job_name = N'nightly-customer-reindex';De beskikberens fan Agent hinget ôf fan ’e edysje en tsjinst dy’t jo útrôle hawwe. Brûk it meganisme dat jo platfoarm wier biedt ynstee fan oan te nimmen dat dit oeral bestiet.
In springhost tichtby de database ferkoartet it paad en is de muoite wurdich, mar it feroaret de eignerskapsfraach net. De sesje einiget dochs as it netwurk einiget. Brûk it om te observearjen, net om it ding te wêzen dat it wurk libben hâldt.
Lit in registraasje efter dy’t de folgjende sesje lêze kin
Registrearje in taaknamme of identifikator, de doeldatabase en it resultaat dat jo ferwachtsje. Krekt dy registraasje lit in oare sesje, of in oare persoan, de fraach beäntwurdzje dy’t de flater net koe. Sûnder dy hawwe jo in ûndúdlik oantinken oan in bywurking en gjin manier om it te kontrolearjen.
EXEC msdb.dbo.sp_help_jobhistory @job_name = N'nightly-customer-reindex';De skiednis toant resultaat en tiid per stap, wat nuttiger is as ien súksesflagge. Foegje foar taken dy’t gegevens feroarje ek de ferifikaasje fan ’e applikaasje ta: in rige-oantal, in kontrôlesom of in statusrige skreaun troch de taak. Twa ûnôfhinklike registraasjes meitsje in nij besyk feilich, en de registrearre taakskiednis is de earste dêrfan.
Ferlykje foardat jo opnij ferstjoere
As de observearjende ferbining ferdwynt, fyn dan de besteande run foardat jo in oare begjinne. Lês de resultaten fan syn stappen en beslút oft it wurk fêstlein, foar in part foltôge of nea begûn is. Pas dan de werhellingsregel ta dy’t de wurkstream definiearret, want in blyn opnij ferstjoeren kin in lading dûbelje of in twadde kear healwei mislearje.
Hâld de duorsume eigner en it ynspektearbere resultaat, en in koarte tagongsflater wurdt in ûngemak ynstee fan in gissing. Dat is it hiele ûntwerpdoel: it wurk moat de ferbining oerlibje dy’t derom frege hat.