Challenge
Improving Veeam ONE performance in large infrastructures.Cause
Fine tuning database structure for large infrastructure deployments.Solution
To improve Veeam ONE SQL database performance, partitioning can be used. Note, that SQL Server Enterprise Edition is required to use partitioning. Partitioned tables and indexes are created by two scripts. Download them here.
NOTE: It is not recommended to use partitioning against Always On Availability Groups.
Before running the scripts, it is recommended to create a backup of Veeam ONE database. The scripts can be executed in any order. Before applying them, you will need to specify the following values:
1. Locate %UserName% parameter in the script and specify DB admin (sa or any domain account that has full control permissions to Veeam ONE DB).
2. Locate %Path% parameter and specify directory where database partitions will be created/stored.
3. If Veeam ONE database name is different from default, then change the name of the database (VeeamOne) in both scripts manually
4. Make sure SQL Agents are running before executing the scripts
After successful script execution you should see new functions and partition schemes:
SQL Server agent will have two maintenance jobs created:
The directory specified for database partitions will have files like this:
VeeamOneLow_FG1.ndf
...
VeeamOneLow_FG13.ndf
VeeamOneMed_FG1.ndf
...
VeeamOneMed_FG15.ndf