what's the meaning of user_objects_deferred_dealloc_page_count???
The BOL says Number of pages which have been marked for deferred deallocation.
To understand this you need to first understand a feature called as "deferred drop" which was introduced in SQL Server 2000. To put it simply if you drop or truncate large table it will show you dropped immediately or truncated immediately but internally it uses deferred drop and removes pages by this mechanism. Quoting from Blog by Paul randal
The deferred-drop mechanism simulates the DROP or TRUNCATE operation completing immediately, by unhooking the allocations for the table and putting them on the ‘deferred-drop queue’, for later processing by a background task. This unhook-and-transfer operation only generates a handful of log records. This is the operation that is being done and rolled-back in my code example above.
The ‘deferred-drop background task’ spins up every few seconds and deallocates all the pages and extents on the deferred-drop queue in small batches, guaranteeing that the operation will not run out of memory. These deallocations are all fully-logged, but remember that deallocating a page full of data or index records does not log individual deletes of those records; instead the entire page is just marked as deallocated in the relevant PFS (Page Free Space) allocation byte-map.
From SQL Server 2000 SP3 onwards, when you perform a DROP or TRUNCATE of a table, you’ll only see a few log records being generated. If you wait a minute or so, and then look in the transaction log again, you’ll see thousands of log records have been generated by the deferred-drop operation, each deallocating a page or extent. The operation is fully and efficiently logged.
I hope it is clear now.
any example /demo script to generate usage of internal temp db object ?
Let me see if I can find some script online, but frankly speaking i have not seen one