日期:2014-05-16 浏览次数:20585 次
1> dbcc help(log)
2> go
log( [dbid | dbname] [,objid | objname] [,page] [,row] [,nrecords] [,type={
-1..84 }] ,printopt={ 0 | 1 | 2 | 3 } [,indid | indname] [,ptnid | ptnname] )
1> dbcc help(page)
2> go
page( dbid|dbname, pagenum [, printopt={0|1|2|3|4} [, cache={0|1} [,
logical={1|0} [, cachename | -1 ]]]] )
1> dbcc help(listoam)
2> go
listoam(dbid | dbname, objid | objname, indid | indname [, ptnid | ptnname [,
cache=[1]{ 1 | 'cache' | 0 | 'disk' } [, printopt=[1]{ 1 | 'verbose' | 0 |
'terse' } ] ] ])
我们用下述SQL来造数据:
1> create table mytest(id int primary key, col2 varchar(512)) 2> go 1> create index idx_mytest_col2 on mytest(col2) 2> go 1> insert into mytest values(1, replicate(char(convert(int, round(rand() * 26, 0) + 65) ), 512)) 2> go (1 row affected) 1> insert into mytest values(2, replicate(char(convert(int, round(rand() * 26, 0) + 65) ), 512)) 2> go (1 row affected) 1> insert into mytest select id + (select max(id) from mytest), replicate(char(convert(int, round(rand() * 26, 0) + 65) ), 512) from mytest 2> go 10 (1024 rows affected) 10 xacts:
以上是准备工作,我们再看看sysindexes的列含义:
id, 表的ID,或者index所属的表的id
indid, 索引ID, 值为0时,它是一个表。为1时,为APL表的聚簇索引(cluster index),>1时,为非聚簇索引或者是DOL表上的聚簇索引
为255时,指代的是LOB结构
doampg, 表的对象分配页上对象的页号
ioampg,索引或者LOB结构的分配页号
first, 如果indid为0或1,数据页的首页号, 如果是2到250,它为页级索引页的第一个页号
root, 如果indid为0, 并且表是未分区的APL表,它是页链的最后一页的页号。如果是1到250之间,它是索引树的根的页号。
Syspartitions的关键列:
indid, id同上。
partitionid, 索引或数据的分区ID
segment,段号
datoampage
indoampage
firstpage
rootpage
含义同上。
1> select id, indid, doampg, ioampg, first, root from sysindexes where id = object_id('mytest') 2> go id indid doampg ioampg first root ----------- ------ ----------- ----------- ----------- ----------- 960003420 1 0 0 0 0 960003420 2 0 0 0 0 (2 rows affected)
1> select name, indid, segment, datoampage, indoampage, firstpage, rootpage from syspartitions where id = object_id('mytest') 2> go name indid segment datoampage indoampage firstpage rootpage --------------------------------------------------------------------------------------------------------------- ------ ------- ----------- ----------- ----------- ----------- mytest_id_9600034201_960003420 1 1 968 960 969 961 idx_mytest_col2_960003420 2 1 0 872 874 873 (2 rows affected)
表mytest总共有2048行数据,
1> select count(*) from mytest 2> go ----------- 2048 (1 row affected)
1> select pagesize(object_id('mytest')) 2> go ----------- 4096 (1 row affected)
看看对象分配页的情况:
1> dbcc listoam('iihero', 'mytest', 1) 2> go ----------------------------------------- Partition id: 960003420 indid: 1 prevpg: 960 nextpg: 960 OAM pg cnt: 1 Entry cnt: 1 Row count information is not maintained for index pages. Used pgs: 2 Unused pgs: 6 Attribute entries: 10 OAM status bits set: (0x8000 (PG_OAMPG), 0x0008 (PG_OAMATTRIB), 0x0004 (PG_OAMSORT)) LAST SCANNED OAM PAGE: 0