Come schedulare un job in SQL Server
Introduzione
Negli anni '70 è stato sviluppato un linguaggio di programmazione per un prototipo di un sistema di gestione di database relazionali. Questo linguaggio è stato successivamente chiamato SQL. Alcuni sostengono che SQL sia l'acronimo di Structured Query Language, mentre altri pensano che siano semplicemente tre lettere messe insieme. Il linguaggio SQL è costituito da molti comandi che permettono di creare, proteggere, gestire e operare sui dati nelle tabelle. Le versioni più recenti di SQL Server sono la 2008 R2, 2012, 2014, 2016 e l'ultima 2017. Ognuna di queste ovviamente contiene degli aggiornamenti potenzialmente significativi per il prodotto, ma nonostante ciò chi ha lavorato con la versione del 2005 non avrà alcun problema ad adoperare quella del 2017, perché il metodo di utilizzo è pressoché uguale. Una delle operazioni più popolari su questo linguaggio è lo schedulazione di un job, che molti pensano che sia una cosa impossibile e ancora più difficile aggiungere varie schedulazioni o alert per l'utente con orari e giorni precisi e ben stabiliti. In realtà, tutto questo può essere agevolato con qualche semplice programma tra cui SQL Server. Infatti in questa guida vi daremo delle lucidazioni su come schedulare un job con questo programma in modo abbastanza semplice e veloce.
Occorrente
- SQL Server (versione non Express perchè non dispone del servizio SQL Server Agent)
Avviare l'operazione
Un job può esser considerato come un insieme di operazioni che devono essere eseguite in modo sequenziale e automatico dal SQL Server Agent. Queste operazioni possono essere l'esecuzione di query e/o stored procedure, l'avvio di applicazioni, l'esecuzione di package di Integration Services. Addirittura un job può esser avviato manualmente dall'utente, o semplicemente può esser schedulato in modo adeguato per avviarlo nei giorni e negli orari desiderati.
Avviare il processo SQL
Bisogna per prima cosa assicurarsi che il processo SQL Server Agent sia attivo. Apriamo SQL Server Management Studio e, nella schermata "Esplora Oggetti" avrete in fondo l'icona del servizio interessato.
Si può notare in figura che il servizio SQL Server Agent non è attivo. Per avviarlo, basta cliccare sull'Agent con il tasto destro e scegliere l'opzione "Avvia". Fatto ciò, l'icona accanto al servizio sarà diversa, infatti diventerà verde, quindi sarà attivo.
Espandere il SQL
A questo punto formare un nuovo job sarà davvero semplice. Espandiamo il SQL Server Agent e clicchiamo con il tasto destro del mouse sulla cartella "Processi", scegliendo l'opzione "Nuovo Processo".
Si presenterà una schermata in cui inseriamo le seguenti opzioni:
- come "Nome" del job e il valore "Job Saperlo. It". Lasciamo selezionata la checkbox "Attivato" e clucchiamo nel menu a sinistra nella finestra presente in primo piano l'opzione "Passaggi".
Creare una tabella raggruppata
Una tabella raggruppata è uno schema su cui è stato creato un indice cluster. Questo indice potrebbe essere stato creato anche automaticamente, poiché SQL Server per impostazione predefinita creerà un indice cluster sulla chiave primaria (colonna); tuttavia, è possibile sovrascriverla in qualsiasi momento. In alternativa, è possibile creare l'indice cluster in modo esplicito utilizzando il comando Create Cluster Index.
Eseguire una query
A questo punto resta solo da citare tutti i vari step che il job deve eseguire. Supponiamo di voler eseguire una query che svuoti quotidianamente dalla tabella Utenti tutti quei record aventi il campo "DataCreazione" inferiore alla data attuale - 1 mese.
Quindi pigiare sul pulsante "Nuovo" nella schermata Passaggi e verrà mostrata all'utente l'interfaccia mostrata in figura.
Settiamo come "Nome" dello step il valore "Step N°1 job Saperlo. It". Come "Tipo" lasciare il valore "Script Transact-SQL" nel caso in cui si desideri specificare una query, oppure scegliere, per esempio, il valore "Pacchetto SQL Server Integration Services" nel caso in cui si voglia eseguire un package già fatto in precedenza.
Come database selezonate il valore desiderato, nell'esempio "Saperlo. It".
Infine digitare la query che si desidera eseguire all'interno dell'area "Comando".
Scegliere il tipo di schedulazione
A questo punto resta esclusivamente da selezionare il tipo di schedulazione una volta confermata la pagina dei vari passaggi. Selezionare la voce di menu "Pianificazioni" e cliccare su avanti.
Solo quando sarà confermata sia la pagina di selezione delle pianificazioni che la schermata di settaggio del job, il lavoro sarà terminato. Per verificare se realmente il job verrà eseguito con successo, basterà posizionarsi nella schermata "SQL Server Agent->Processi->Saperlo. It", cliccare con il pulsante destro sull'opzione "Visualizza Cronologia".
Basterà cambiare pochi settaggi, sempre semplicemente tramite interfaccia grafica, per realizzare operazioni anche molto più complicate e con processi decisamente più complessi.
Guarda il video
Consigli
- Controllare che il processo SQL Server Agent sia attivo, se vogliamo che il job venga eseguito in modo automatico
- Controllare periodicamente la cronologia del job per verificare se si sono verificati eventuali problemi