Hi,
I have a SQL Server 2005 database. It’s .MDF & .LDF can
be downloaded at https://www.dropbox.com/s/uj2mw410jm2m078/MyDB.rar?dl=0
Now I want to know whether two table are stored as heap or
b-tree(linked list), so I run the following commands:
USE CR_YPLS8_NEW_QB;
select
sys.objects.name,
sys.objects.object_id,
sys.partitions.index_id,
sys.system_internals_allocation_units.first_page,
sys.system_internals_allocation_units.first_iam_page
from sys.objects, sys.partitions,
sys.system_internals_allocation_units
where (sys.partitions.object_id = sys.objects.object_id) and
(sys.system_internals_allocation_units.container_id =
sys.partitions.partition_id) and
((name = 'cardfa') or (name = 'pcspkc'));
Where 'cardfa' and 'pcspkc' are the two user tables I want
to investigate.
The result is below:
Based on
https://technet.microsoft.com/en-us/library/ms189051(v=sql.105).aspx, since
both table’s index_id is 1, they are all stored as b-tree(linked list).
However, with the help of DBCC Page command, I find the 'cardfa' table is
actually stored in heap, which is inconsistent with the search result. Why?
Thanks