Configuration Manager Inventory Cycle Recommendations

By Garth Jones

I’m often asked for advice about Configuration Manager’s inventory settings.

First, what are the three different inventories?

1. Hardware Inventory (includes Asset Intelligence data)

2. Software Inventory

3. Heartbeat Discovery

Hardware Inventory
You would think based solely on its name that this inventory setting only shows details about the physical hardware. It is true that it does show you details about your physical hardware, but it also shows data collected from WMI. This inventory type is customizable.

Software Inventory
Again, based solely on its name, you would think that this setting is what you should use to inventory software that is installed on your PC. Well, that is not truly its purpose. It really should be renamed to file inventory as this is exactly what it does.

Heartbeat Discovery
This inventory setting is listed with the other discovery tasks. Many people overlook the value of this inventory / discovery data. This one is similar to the hardware inventory setting, but it has a much smaller, pre-defined list of classes / attributes that it will inventory. There are 18 classes that this inventory will perform. The main ones are: User Name, MAC Address, IP address, and PC name.

Here are my inventory setting recommendations:

Inventory Setting Schedule
Heartbeat Discovery Daily and in some cases as little as hourly.
Hardware Inventory Daily.
Software Inventory Turn it off or every 14 days.

Why this recommendation? The simple answer is it gives you the best bang for the buck!

Since most inventory settings are used for reporting, the two most important inventory settings that you are going to use are Heartbeat Discovery (for the v_R_System SQL view) and Hardware Inventory (for all of the v_GS_* SQL views). Virtually no one uses the Software Inventory setting anymore, particularly if they have Asset Intelligence enabled. One of the main reasons for NOT using the Software Inventory setting is its speed and performance. Read my blog post entitled Slow Software Inventory Cycle in SCCM 2012 for more reasons as to why I don’t like it.

To help prove my point, let’s look at how long it takes for my laptop (Dell M4500 with an SSD drive) to perform each of the following inventory tasks.

Inventory Cycle Time in Seconds
Heartbeat Discovery 3.432
Hardware Inventory 380.939
Software Inventory 2041.804

Hardware Inventory Cycle Note:
I have lots of extra Hardware Inventory classes enabled, however, they should only add a few extra seconds to the total time.

All Asset Intelligence classes are enabled and they add ~60 seconds to the total time of the Hardware Inventory cycle.

Software Inventory Cycle Note:
I’m only inventorying iexplore.exe within C:\Program Files\Internet Explorer\* directory! Just image how long it would take to inventory all exe files on my C:\!

Would any of your end users notice that you ran both the Heartbeat Discovery Inventory and Hardware Inventory every day when they take a combined total of 385 seconds and the CPU usage / disk usage never goes above 2% during that time frame? I have never had any clients complain about either Heartbeat Discovery or Hardware inventories, but I hear many end users complaining about Software Inventory.


Written by , Posted .


  1. I’m interested by the time frame of the Software Inventory. Why is it so much longer?

    Is there a way to get a reading on some of our computers to see how long it takes to run the inventories?

    • GarthMJ

      Hi @iamwpj:disqus

      Why is it so longer? Well it because it is reading each file via WMI and this just take time.

      As for how long it takes on you PCs.

      if you look at my blog post called “Slow Software Inventory Cycle in SCCM 2012” (see the link above) you can see within it how you have review the InventoryAgent.log and look search for “000002” This will show you the start time of the last SW inventory. Then you need to scroll down the log until you see that SW Inv have complete.

  2. Brett Bartrum

    Hello Garth,

    You mention setting the hardware inventory to as frequent as daily. Do you have estimates as to what that would do to the database size per client? Typically I estimate about 5MB per client when sizing SCCM databases. From my understanding SCCM will keep historical data on previous hardware inventories for 90 days. Default settings would be about 13 hardware inventories (every 7 days) over a 90 day period vs daily would be 90 inventories.

    Thank you,


    • GarthMJ

      Hi @bartrumb

      To be honest, Brent I have never looked nor cared about how much extra space it takes. The reason are simple:

      Having the updated data is valuable to me, I want to know when someone install MS Project 2013 within 24 hours, I don’t want to wait 7 days to find out this has happened.

      All you are really doing is spreading the Delta inventory size over the 7 days, Yes there is a bit of overhead but IMO it is not much. Think about it. Assume that you installed 7 software titles, Each inventory will have 1 software title vs the weekly that will have 7 titles.

      So I decide to do a quick test. Here is what I did to see the size on my PC.

      Enable the collection of the HW inventory XML (MIF).

      Preform a delta HW inventory (twice), 50KB and 49KB

      Force a full HW inventory 5943KB (I have lots of extra data)

      Wait 90 minutes

      Preform a delta HW inventory (twice), 169KB(??) and 53KB

      So here are my conclusions.

      The overhead of the extra inventory cycles is ~50kb

      After reviewing the XML file, most of the contents is XML overhead and will NOT get added to the db.

      My *Guess* is ~10 KB will be added to the db for each inventory cycle

      90 (daily) – 13 (weekly) = 77 extra inventory cycles

      10kb *77 extra inventory cycles = 770KB or 1MB (round up)

      So using my PC as an example and round up, you are looking at ~17% increase in db size or 7MB/PC.

      • Brett Bartrum

        Thanks for the in-depth reply!

        As long as it is delta’s then space won’t be much of a concern. I will plan for 7MB in future.


        • GarthMJ

          Hi @brettbartrum:disqus

          I have been thing about this and running a few more tests, I’m thinking that 7MB maybe still too little, particularly if you have SW inv., SWM, and SU. I have started writing an blog post about how big we should be estimating per PC based on # from my lab. It will take a bit to complete as I’m heading to TechEd tomorrow but watch for in the coming weeks.

Leave a Comment

You must be logged in to post a comment.