Hi Anil,
For the moment, I wouldn't worry much about an "apples to apples" comparision. That will come into play when we get to figuring out if the values you are seeing are reasonable. But for the moment, I'd say we are just trying to figure out why "unpin" is happening at all. So if you have the time and more freedom to test (with no other users) on the development system I'd go ahead there to see if we can see Unpin happening there and figure out the "why".
So a few observations from the sysmon output:
One possibility I was considering was whether the unpins might be caused by worker processes (I don't think they should, being all part of one family, but workers are one way that one process might appear to be multiple ones). However, sysmon indicates none were used:
Worker Process Usage
Total Used 0.0 0.0 0 n/a
Max Ever Used During Sample 0.0 0.0 0 n/a
From the transaction profile section shows a lot of APL heap inserts and only a handful of DOL inserts. My guess is the APL heap inserts are log records inserted into syslogs, but the value is smaller than I'd expect for dropping and creating 3 indexes on a 1.5 million row table. (but perhaps the sp_sysmon only partially overlapped the create index?)
Transaction Detail per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Inserts
APL Heap Table 1908.2 21371.4 1602857 100.0 %
APL Clustered Table 0.0 0.0 0 0.0 %
Data Only Lock Table 0.2 2.3 176 0.0 %
Fast Bulk Insert 0.0 0.0 0 0.0 %
------------------------- ------------ ------------ ---------- ----------
Total Rows Inserted 1908.4 21373.8 1603033 100.0 %
Final thing I note is that the housekeeper had some activity. The dirty buffer value is in the same ballpark as the Unpin value. Maybe the Unpins come from extents belonging to the dropped indexes being queued to the housekeeper for cleanup but getting reallocated to the new index before the housekeeper tries to process them? Still just a guess. Could test this by turning Housekeeper GC off temporarily, or perhaps drop the indexes, give the housekeeper time to clear its queue before creating indexes (which is a bit different than just dropping and creating the clustered index).
Housekeeper Task Activity
-------------------------
per sec per xact count % of total
------------ ------------ ----------
Buffer Cache Washes
Clean 212.7 2382.4 178681 81.1 %
Dirty 49.7 556.5 41735 18.9 %
------------ ------------ ----------
Total Washes 262.4 2938.9 220416
-bret