Currently sizing the databases for XenDesktop relies on being able to interpret and understand the database sizing KB article CTX139508. This doesn’t help if you know you have a variation on the listed environments. To try and assist I’ve created a simple tool that can help generate custom sizing information.

Why not an excel file?

Many people have asked for excel files or simple formula to work out the database sizing, sadly the complexity of what’s need is too big, with lots of factors:

  • How XenDesktop places data into the database, different tables grow differently
  • The database structure makes it hard to provide simple formulas, eg page fullness, and fragmentation
  • Tables have differing numbers of indexes, some have just one, others have 5 or 6
  • The monitoring database tables are also groomed to remove old data

All of this combines to make it very complex to work out sizing in a spreadsheet.

Why a tool?

The tool could hide the complexity of the calculations, handling page fullness and fragmentation, the variations between the number of indexes, and allow for differences between 7.5 and 7.6.

This doesn’t mean the tool is a “pretty” tool, it’s very raw in the data it consumes and displays. It certainly has room to be improved on, but I wanted to make the tool available rather than have nothing.

Download Info

The tool is on sharefile:
It’s a zipped up msi file, so it’s easy to install/uninstall. The only dependency the tool has is on .Net 4.0, it doesn’t need any part of XenDesktop.

How to use the tool

If you start up the tool you’ll see a window appear with a section at the top which allows the input of parameters about the expected environment. The default sets are VDI and HSD of various sizes, and should look similar to:

You can either update one of the rows, or just start typing numbers into the blank bottom row and it’ll add more rows.

If you then pick the database type and XenDesktop version, and click Calculate the program will run the math and produce sizing guidance seen in the bottom section of the above image.

The produced data includes a row for each of the rows entered in the top section. The columns will indicate an approximate size at various points in time. For site databases the size tends to reach a max size and stay there, as it doesn’t accumulate data. For monitoring the database will get bigger over time, depending on configured grooming settings for monitoring. Note that this is also dependant on licensing, eg only Platinum customers can configure the grooming interval to longer than 7 days.

So for monitoring the data looks like:

Drilling into the Table Details

For those interested in the details of which tables are actually consuming the space you can drill into the “Sizing by Table” tab, inside which there’s a tab for each calculation, eg, for the monitor tables with the 100k XenApp users row:

This allows the more detailed view to tell you which tables may become large, and possibly tune the monitoring grooming to keep certain areas smaller. The breakdown covers the baseline size, IE fixed size, generally tables based on users or machines, have growth every day, eg historical load balancing info, and have growth only on working days, eg connections and sessions. These are then rolled into a weekly growth column (assumes 5 working days in a 7 day week) and then into the monthly column.

Exporting the data into Excel

To export any of the tables into Excel, click in the table, then press CTRL-A (Select All), then CTRL-C (Copy), you should then be able to paste the data into Excel for graphing or other analysis.


Any comments on the tool would be appreciated, I will look to extend it based on feedback.