La manutenzione di SQL Server è un aspetto fondamentale per la tua impresa, per la tua azienda che ha deciso di utilizzare questo DBMS relazionale proposto da Microsoft. Prima di passare agli aspetti tecnici, però, ricordiamo un attimo di cosa stiamo parlando: è un software per realizzare e gestire database aziendali.
Quindi la responsabilità è tanta. Un programma del genere deve gestire una gran quantità di informazioni, e il database administrator ha bisogno di grandi competenze per ottimizzare ogni passaggio ed evitare problemi attivando un valido e continuo monitoraggio di Microsoft SQL Server.
Ma non basta, per garantire performance e sicurezza serve la manutenzione di SQL Server e dei database. Qualche consiglio in più su questo punto? Ecco una guida per iniziare il tuo lavoro.
Indice dei contenuti
Perché serve fare manutenzione di SQL Server
Prima di capire il come, è giusto individuare i motivi che spingono un amministratore di database ad affrontare questo punto. L’IT Department deve assicurarsi che il database non diventi l’anello debole dell’infrastruttura e sia sempre performante oltre che sicuro.
Le pagine del database possono corrompersi, gli indici hanno bisogno di aggiornamenti e manutenzione costante, la normalizzazione delle tabelle che lascia a desiderare crea una serie di inefficienze. Per evitare problemi nel tempo – e complicanze ben più gravi da affrontare – è giusto creare dei piani di manutenzione dei database su SQL Server. Così puoi schedulare le azioni in modo adeguato.
Soprattutto, eviti interferenze con le attività quotidiane. Comprimere i file, riorganizzare i dati, aggiornare le statistiche: tutto ciò ti consente di avere un database SQL efficace, sempre veloce e sicuro. Ed è quello che serve a un’azienda che investe nelle tecniche di SQL Server Performance Tuning.
Come fare manutenzione dei database SQL
Le operazioni in un percorso di manutenzione di SQL Server si dividono in una serie di step predefiniti. Ogni azione ha la sua utilità, il suo scopo. Il modo migliore per avere un’idea chiara del lavoro da svolgere? Analizzare i singoli punti per capire come gestire un piano efficace per mantenere il tuo database efficiente.
Controllo integrità
Il primo punto da mettere in evidenza: devi verificare che il tuo database sia al sicuro da eventuali casi di corruzione dei dati. Quindi parliamo di informazioni danneggiate, irrecuperabili, che possono dare vita a quelle che conosciamo come Torn data page. Ovvero una pagina con un problema di integrità dei dati scritti solo parzialmente sul disco.
Questo problema si registra quando il sistema sta scrivendo sul disco e subisce un’interruzione improvvisa, come un’interruzione di corrente o un crash del sistema.
Difficile anticipare una situazione del genere ma se non si fa la giusta manutenzione, correggendo eventuali nodi, le query che tentano di leggere o scrivere sulla pagina danneggiata possono fallire o riportare informazioni errate. Con tutti gli intoppi che si possono registrare in ambito aziendale. Come risolvere?
Il comando DBCC CHECKDB
trova e corregge le pagine errate. Questo comando esegue una serie di controlli di integrità sul database e può riparare i problemi individuati.
Fai un Security Audit
La manutenzione di SQL deve includere, per motivi di efficienza, un Security Audit per verificare la tenuta delle difese. E proteggere i dati da accessi malevoli, non autorizzati.
Oltre a installare patch di sicurezza ed effettuare gli aggiornamenti, verifica i permessi e i privilegi utente monitorando l’accesso ai dati. Un check alla sicurezza delle password è d’obbligo.
Untrusted Foreign Keys
Altro aspetto fondamentale della manutenzione SQL è l’Identifying and Fixing Untrusted Foreign Keys. Vale a dire, identificare e correggere le chiavi esterne – vincolo in un database che garantisce la relazione tra due tabelle – non attendibili. Per identificare le chiavi esterne non attendibili puoi utilizzare una query SQL.
SELECT
name AS ForeignKey,
OBJECT_NAME(parent_object_id) AS TableName
FROM
sys.foreign_keys
WHERE
is_not_trusted = 1;
Aggiorna le statistiche
Mantenere aggiornate le statistiche che SQL sfrutta per ottimizzare le query è un tuo preciso dovere. Almeno se sei il responsabile del database, è chiaro. Ma di cosa parliamo esattamente? SQL genera una statistica di distribuzione dati per tabelle e indici, e questo parametro viene letto da Query Optimizer di SQL Server quando si deve valutare l’indice.
Avere delle statistiche aggiornate porta a delle conclusioni migliori. Come risolvere questo nodo? Usa EXEC sp_updatestats;
per aggiornare tutte le statistiche del database.
Gestione dei dati e dei file log
Uno degli aspetti per la manutenzione del tuo SQL database: devi prenderti cura delle informazioni presenti nelle pagine. Quindi serve un percorso di ottimizzazione dei dati e dei log delle transazioni per gestire la crescita ed evitare problemi in termini di prestazioni.
La regola di base, come ricorda anche il sito web Microsoft, suggerisce all’esperto che si occupa della manutenzione di verificare che i dati e i file di log si trovino in unità distinte.
“Il posizionamento dei dati E dei file di log nello stesso dispositivo può provocare contesa nel dispositivo stesso, causando una riduzione delle prestazioni”.
Qual è la regola in questo passaggio? Il lavoro di manutenzione deve verificare che l’unità contenente i dati deve essere coerente, idem quella dedicata ai file di registro. Ma bisogna anche considerare come cambia la crescita di questi elementi nello spazio fisico.
Verifica e gestisci l’evoluzione dei file di dati e dei log con alcuni settaggi per allocare lo spazio. Puoi configurare gli auto-growth (gli incrementi automatici) per fare in modo che il database sia sempre in grado di gestire le richieste. L’aumento viene configurato in modo da allocare lo spazio necessario, di solito si usa la dimensione fissa perché è prevedibile.
Aggiornare il sistema operativo
Mai ignorare l’importanza di un buon aggiornamento e dell’installazione delle patch di sicurezza. Può essere utile installare Service Pack recenti e Cumulative Updates per mantenere SQL Server sempre aggiornato ed evitare vulnerabilità. Queste operazioni, però, devono essere programmate e gestite con costanza.
Manutenzione degli indici
Altro aspetto della manutenzione di un SQL Server. La frammentazione è uno dei problemi tipici delle pagine indici di un database e si tratta di una pericolosa dispersione di risorse che si verifica quando si presentano pagine con l’ordinamento logico che non corrisponde a quello registrato all’interno dell’indice.
Quando si desidera procedere con la manutenzione, scegliendo il metodo ideale, SQL Server e dei suoi indici bisogna valutare la frammentazione e la densità di pagina.
A questo punto si può definire se procedere con riorganizzazione di un indice – processo meno invadente e preferito a meno che non ci siano particolari esigenze. Ecco il comando:
ALTER INDEX [NomeIndice] ON [NomeTabella]
REORGANIZE;
La ricostruzione, invece, contempla l’eliminazione dell’indice esistente per crearlo da zero. Ciò implica la costruzione di un nuovo albero di indice con pagine ordinate. Un esempio:
ALTER INDEX [NomeIndice] ON [NomeTabella]
REBUILD;
Questo richiede molte risorse CPU, memoria e I/O del disco e un tempo superiore rispetto alla riorganizzazione. Che è un’attività meno intrusiva ma rivolta a sistemare le pagine dell’indice e ordinare le righe all’interno delle pagine senza ricreare la struttura da zero.
È una buona pratica, per ottimizzare tempi e risorse, riorganizzare un indice quando la percentuale di frammentazione è inferiore al 30%. E ricostruirlo quando supera questa soglia
Backup dei dati
Nel lavoro di manutenzione del database SQL rientra un percorso di backup dei dati, meglio ogni ora ma dipende dal contesto. Se il database è in full recovery mode, serve il backup del log delle transazioni per avere tutte le modifiche al database sempre a disposizione.
A prescindere dalle richieste, garantire la possibilità di ritrovare i dati in caso di perdita o corruzione è un dovere per uno specialista. Organizza i tuoi backup e testali in modo da assicurare i tuoi dati: non puoi improvvisare su questo punto. Puoi verificare un backup utilizzando il seguente comando T-SQL:
RESTORE VERIFYONLY
FROM DISK = 'C:\PercorsoBackup\NomeDatabase.bak';
Definisci dei piani di manutenzione adeguati
Molte attività di controllo e manutenzione inserite in questa guida – come backup database e log transazioni, controllo d’integrità, aggiornamento statistiche e ricostruzione indici – possono essere pianificate attraverso i piani di manutenzione.
Il vantaggio? Gestire queste attività in modo programmatico, senza improvvisare o correre ai ripari quando la situazione è già critica. Quando le responsabilità sono elevate questa è la soluzione migliore: puoi creare dei piani di manutenzione efficienti utilizzando gli script di Ola Hallengren che trovi sul sito web ufficiale.
Un’azienda che vuole programmare una manutenzione SQL Server strutturata può contattare un’agenzia specializzata con le figure professionali e le competenze necessarie. Anche per gestire infrastrutture di aziende protese verso grandi database ed esigenze uniche in termini di gestione del rischio.
Desideri parlare con un nostro esperto? Contattaci
Ultime News Tecnologie e concetti IT
-
Quando finirà il supporto di Windows 10? E cosa dobbiamo fare?
9 Novembre 2024 -
Cos’è un software: definizione ed esempi chiari per approfondire
31 Ottobre 2024 -
Cos’è un Ransomware? Ecco come attacca e come puoi proteggerti
14 Ottobre 2024 -
Quali sono le tendenze della gestione avanzata dell’iperconvergenza?
19 Settembre 2024 -
Tutte le novità di SQL Server e le funzionalità aggiuntive
18 Luglio 2024 -
Quali sono le differenze tra SQL Server e Oracle?
13 Maggio 2024
Gestione dati e analisi
-
Cos’è e come fare monitoraggio di Microsoft SQL Server
23 Aprile 2024 -
Guida SQL Server, tutto quello che devi sapere
19 Aprile 2024 -
OLTP: Cos’è, Come funziona, Vantaggi ed Esempi
28 Dicembre 2023 -
OLAP: Cos’è, Come funziona, Caratteristiche e Tipologie
27 Novembre 2023 -
OLTP vs OLAP: Cosa sono, Differenze, Vantaggi e Svantaggi
8 Ottobre 2023 -
ETL vs ELT: differenze chiave e il migliore
25 Settembre 2023 -
Data mesh: cos’è, differenze e architettura
14 Settembre 2023