Browse Tag: SQL Server

SQL Tips & Tricks, spostare un’istanza da un server all’altro

Se avete molti database, job di SQL Agent e login con permessi particolari, spostare una istanza di SQL Server da un server all’altro può richiedere parecchio tempo. Tuttavia tenere aggiornato il motore del database è importante e non sempre è possibile farlo sullo stesso server, magari per la necessità di un upgrade del sistema operativo.

Recentemente ho migrato una vecchia installazione da Windows Server 2003 e SQL Server 2005, di seguito qualche suggerimento.

Continue Reading

SQL Tips & Tricks, permessi tra database

Quando si crea un database di warehouse, che consolida informazioni da varie sorgenti, può essere richiesto di impostare dei criteri di sicurezza per l’accesso ai dati. Se le informazioni si trovano in database differenti è necessario che l’utente abbia accesso esplicito a tutte le tabelle che saranno interrogate.

Ma, se si vuole proteggere una tabella di un database esponendola tramite una vista filtrata in un altro database, l’attribuzione dei permessi crea un problema di sicurezza. L’utente infatti può vedere tutti i dati (anche quelli non filtrati) semplicemente accedendo alla tabella originale.

Continue Reading

SQL Tips & Tricks, Log Shipping

Con il Log Shipping di SQL Server è facile implementare un sistema di replica completa ed alta affidabilità dei database. SQL Server infatti tiene traccia di tutte le operazioni di modifica del database in un file di “log”. Questo file viene normalmente “troncato” dal backup periodico (altrimenti crescerebbe all’infinito) ma è possibile utilizzarlo per replicare i dati su un altro server.

Continue Reading

SQL Tips & Tricks, ambiente di staging

Disporre di un ambiente di prova di un sistema ERP è fondamentale per provare le nuove procedure e fare training agli utenti. Noi chiamiamo questo ambiente “staging”.

Affinché sia produttivo, uno “staging” deve avere i dati il più possibile aggiornati. Meglio se è una copia dell’ambiente di produzione: in questo modo le impostazioni saranno stesse ed i test saranno realmente attendibili.

Continue Reading

SQL Tips & Tricks, controllo tabelle NAV

Le tabelle dei dati di Microsoft Dynamics NAV vengono create su SQL Server automaticamente dall’ambiente di sviluppo. Il programmatore definisce la struttura dal designer di NAV e, applicando la configurazione, le tabelle vengono create o aggiornate.

Il database deve quindi essere allineato con gli oggetti di NAV e può succedere che qualcuno abbia creato delle tabelle direttamente su SQL, magari per un backup o per dati temporanei.

Come individuarle?

Continue Reading

SQL Tips & Tricks, ultime query eseguite

Se stiamo cercando la causa di una anomalia nel database oppure di un rallentamento, ma non avevamo una traccia (Profiler) attiva al momento del problema, può essere utile interrogare le viste DM di SQL Server.

Le viste DM (DMVs – Dynamic Management Views) tengono in memoria gli eventi di SQL Server per un tempo limitato (di solito qualche giorno) e possono fornire utili indicazioni sullo stato del database.

Continue Reading

SQL Tips & Tricks, uso del profiler

Qualche consiglio sull’uso del Profiler di SQL Server, uno strumento indispensabile per individuare l’origine dei rallentamenti nel database.

Il Profiler genera una traccia in tempo reale delle attività del database, segnando il software di origine, l’utente, la query effettuata e la durata dell’istruzione. È possibile quindi monitorare il comportamento del database server durante il normale utilizzo, per poi scaricare la traccia ed analizzarla alla ricerca di eventuali anomalie.

Continue Reading

SQL Tips & Tricks, ottimizzazione degli indici

Senza indici nessun database si “muoverebbe” perché la ricerca delle informazioni sarebbe troppo lenta. Per fare un esempio pensate all’elenco telefonico di una grande città, ma stampato in ordine sparso. Una ricerca costerebbe la lettura dell’intero elenco! Gli indici mantengono l’ordine dei dati nel database ed ogni tabella può avere più di un indice.

Tuttavia gli indici necessitano di manutenzione e soprattutto possono essere ottimizzati: eliminando quelli non necessari, aggiungendo quelli mancanti.

Continue Reading

SQL Tips & Tricks, lock e tabelle

SQL Server mette a disposizione del programmatore alcune tabelle con importanti informazioni sullo stato generale del sistema. Una di queste contiene l’elenco degli utenti loggati, un’altra la lista di tutte le tabelle disponibili, un’altra ancora la lista dei blocchi sugli oggetti a causa delle operazioni di insert, update, delete.

Spesso su database con alta concorrenza è utile sapere chi sta bloccando e cosa. Quando ci sono rallentamenti o blocchi inattesi del database mettere insieme queste informazioni diagnostiche, è fondamentale per la risoluzione dei problemi.

Continue Reading

Misurare le performance per SQL

Quando un database “va lento” le cause possono essere molteplici: hardware sottodimensionato, errata impostazione del server, mancanza di un piano di manutenzione, query di interrogazione poco ottimizzate…

La soluzione ad un problema di performance richiede un’analisi molto complessa e spesso, in mancanza di chiari indicatori, si procede per esclusione. La  prima cosa da escludere è un problema all’hardware o meglio accertarsi che il “ferro” supporti il carico di lavoro desiderato.

Disporre di un tool di diagnostica è molto importante, soprattutto in questo momento in cui la maggior parte delle installazioni sono in ambiente virtuale e talvolta è impossibile accedere all’hypervisor (es. nel cloud) per monitorare gli indicatori di performance.

Continue Reading