Visualizzazioni:

Nota importante:
La manutenzione e l'assistenza dei database è un'attività complessa che richiede molto tempo e che deve essere eseguita da esperti di database. Da allora DocuWare fornisce un supporto limitato per la manutenzione dei database. Questo processo richiede una profonda conoscenza tecnica delle strutture dei database. La nostra esperienza ha dimostrato che la cura e la manutenzione del database non sono state eseguite, con conseguenti problemi di prestazioni nei singoli sistemi DocuWare. La deframmentazione degli indici, così come la manutenzione e la ricreazione degli indici necessari, è un'attività essenziale e difficile che richiede una conoscenza approfondita del database.
La manutenzione del database non fa quindi parte dei nostri Support Services. Se l'utente ha bisogno di supporto o di assistenza da parte di DocuWare, è possibile che l'offerta sia a pagamento. In questo caso, si consiglia di contattare il nostro servizio di assistenza professionale in anticipo rispetto al progetto, inviando un messaggio di posta elettronica all'indirizzo professional.services.emea@DocuWare.com o professional.services.americas@DocuWare.com.

Questo articolo descrive cosa è possibile fare per migliorare le prestazioni e la manutenzione del database.
Oltre a una conoscenza approfondita del database DocuWare, abbiamo raccolto i più importanti articoli ufficiali di Microsoft SQL Database MSDN (Microsoft Developer Network) che aiutano a iniziare a gestire correttamente un database MSSQL.
Microsoft Developer Network è la base di conoscenza ufficiale di Microsoft.


Raccomandazioni sulle migliori pratiche:

Separare i dati
Si consiglia di non collocare la posizione di archiviazione del server di database nella partizione di sistema di Windows. La partizione di sistema di Windows (di solito C:\) è già utilizzata per il file di swap e per altri importanti processi di sistema e potrebbe quindi avere già un certo grado di utilizzo o di carico.
Si consiglia invece di memorizzare i database in una partizione separata. Idealmente, i database di DocuWare sono fisicamente separati da altri database. Questa soluzione non solo è consigliata per garantire al sistema le prestazioni necessarie, ma facilita anche la risoluzione dei problemi in caso di emergenza.

Si consiglia il seguente partizionamento:
partizione fisica o virtuale per
- Database (file *.mdf)
- Log (file *.ldf)
- SQL Server Engine
Assicurarsi che le partizioni non si trovino sullo stesso disco rigido fisico o virtuale.


Mantenere gli indici:

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15
Gli indici frammentati possono rallentare il sistema e i processi di lavoro. Si consiglia di eseguire una manutenzione mensile di questi indici per ottenere le migliori prestazioni possibili. Ciò dipende dalle dimensioni del sistema e dalla complessità degli indici utilizzati.
Gli indici non devono sovrapporsi e devono essere unici.
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/create-clustered-indexes?view=sql-server-ver15

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/create-nonclustered-indexes?view=sql-server-ver15

Un indice di database è una struttura di indici in un database, separata dalla struttura dei dati, che velocizza la ricerca e l'ordinamento per campi specifici.

Un indice consiste in un insieme di puntatori (riferimenti) che definiscono una relazione di ordinamento con una o più colonne di una tabella. Se una colonna indicizzata viene utilizzata come criterio di ricerca in una query, il sistema di gestione dei database (DBMS) cerca i record desiderati utilizzando questi puntatori.
Senza un indice, le colonne dovrebbero essere cercate una per una, mentre una ricerca che utilizza l'indice dovrà cercare solo i puntatori a cui si riferiscono.

Rivedere mensilmente questi indici per assicurarsi che non ci siano sovrapposizioni negli indici, in quanto ciò può avere un impatto negativo sulle prestazioni.

sys.dm_db_missing_index_details
https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-missing-index-details-transact-sql?view=sql-server-ver15
Questo script è molto importante e fornisce informazioni rilevanti sugli indici mancanti

Dividere il tempdb:

https://docs.microsoft.com/en-US/troubleshoot/sql/performance/recommendations-reduce-allocation-contention
Quando il database tempdb è molto utilizzato, SQL Server potrebbe avere delle contese quando cerca di allocare le pagine. A seconda del grado di contesa, le query e le richieste che coinvolgono tempdb potrebbero non rispondere per un breve periodo.
Lo scenario peggiore è quello di una query di lunga durata che blocca altri processi.

Strutturare preventivamente i file cabinet
si consiglia di costruire i file cabinet in modo appropriato per il server MSSQL.
Più colonne si hanno, più campi sono coinvolti. Più campi vengono cercati, più complesse e grandi saranno le query del database sul vostro server.
È più sensato avere due schedari più piccoli invece di uno grande, a meno che il vostro server di database non sia progettato e abbia le prestazioni e la manutenzione necessarie per gestirlo.
Considerate di ridurre il numero di campi indice totali. Più campi indice ci sono, più complesse saranno le query e maggiore sarà il carico del server SQL.


Conoscete il vostro server:

I 3 maggiori impatti sulle prestazioni sono limitati a questi 3 sottofattori:
Memoria (RAM)
CPU
Sottosistema IO (ad es. dischi rigidi)

Microsoft raccomanda che un database si inserisca almeno una volta completamente nella RAM a partire dalle sue dimensioni.
La parte più grande di un database DocuWare può essere il testo completo. Se non viene utilizzato completamente, questa regola empirica non deve essere rispettata.
Anche la cronologia del flusso di lavoro o l'audit consumano spazio di conseguenza.
Non si consiglia di risparmiare sull'hardware. Aumentare la RAM e la CPU può risolvere i problemi a breve termine e prevenire i guasti che bloccano i processi di lavoro.

Se si riscontra un carico elevato sulla CPU, verificare l'utilizzo attuale e se il numero di core è appropriato per le dimensioni e l'architettura utilizzate.

Non utilizzare MSSQL Express Edition per ambienti produttivi che superano le nostre raccomandazioni di sistema:
MSSQL Server Express Edition ha limitazioni per quanto riguarda l'utilizzo di CPU e RAM:

MSSQLServer 2016 Express + Altre edizioni
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2016?view=sql-server-ver15
MSSQLServer 2017 Express + Altre edizioni
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2017?view=sql-server-ver15
MSSQLServer 2019 Express + Altre edizioni
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15

Si consiglia di consultare anche i seguenti articoli ufficiali MSDN di Microsoft, che possono aiutare a mantenere stabili le prestazioni del server di database

Requisiti per l'utilizzo di tabelle ottimizzate per la memoria, OLTP in memoria e ottimizzazione della memoria
https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/requirements-for-using-memory-optimized-tables?view=sql-server-ver15
https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/in-memory-oltp-in-memory-optimization?view=sql-server-ver15

Opzioni di configurazione della memoria del server
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/server-memory-server-configuration-options?view=sql-server-ver15

Monitoraggio dell'utilizzo della memoria
https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/monitor-memory-usage?view=sql-server-ver15

Considerazioni sulla progettazione di SQL Server
https://docs.microsoft.com/en-us/system-center/scom/plan-sqlserver-design?view=sc-om-2019&viewFallbackFrom=sc-om-1711

Panoramica sul backup (SQL Server)
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-overview-sql-server?view=sql-server-ver15

KBA è applicabile SOLO alle organizzazioni on-premise.

Si prega di notare: Questo articolo è una traduzione dall'inglese. Le informazioni contenute in questo articolo si basano sulla versione originale in inglese del/i prodotto/i. Potrebbero esserci piccoli errori, ad esempio nella grammatica utilizzata nella versione tradotta dei nostri articoli. Sebbene non possiamo garantire la completa accuratezza della traduzione, nella maggior parte dei casi la troverete sufficientemente informativa. In caso di dubbi, si prega di fare riferimento alla versione inglese di questo articolo.