22-系统SQL整理
1、查看内存使用情况
select * from sys.dm_os_sys_memory
2、查看当前进程的情况
select * from sys.sysprocesses
3、查看非系统进程的使用情况(spid是50以后进程)
select * from sys.dm_exec_connections
4、查看当前登录用户拥有的权限
select * from sys.fn_my_permissions(null,'server')
select * from sys.fn_my_permissions(null,'database')
5、查看数据库的文件组
select * from run.sys.filegroups
6、查看数据库的数据文件和日志文件
select * from run.sys.sysfiles
7、查看某张表的详细信息
sp_help T3
8、查看某张表分配的分区
dbcc extentinfo(run,T3)
dbcc extentinfo(run,test,NonClu_index) --查询索引对应的存储区
参数1:对应的库名
参数2:对应的表名
参数3:对应的索引名称
参数4:对应的分区number(如果表做分区的话)
字段含义:
file_id:数据库的数据文件的编号
page_id:在某个盘区中的第一个页面的页面号
pg_alloc:该盘区分配的页面的数量(大于等于1,小于等于8)
ext_size:盘区的大小,以页面为单位
object_id:数据库对象的ID
index_id:表示数据对象的类型
注:可以根据上面查出的file_id定位到具体的数据文件
9、查看某张表分配的页
dbcc ind(run,1525580473,1)
---参数:库名,对象id,partition_number(可以根据上一个查询得出)
注:根据上面查出的分区数量449个,前面有8个分区是只分配了1个page,所以总的page数是441*8+8*1=3536
下面查看的page页是3537,但是前面有一个页4426的IAMPID是NULL(该页是IAM页,用于检索堆中的数据行),所以除去这一页,结果是相同的。
索引分配映射页(IAM):Index Allocation Map
结果含义:
PageFID:数据文件的ID
PagePID:数据页的ID
IAMFID:IAM页所在的文件ID
IAMPID:IAM页所在的PageID
ObjectID:对象ID
IndexID:索引ID
PartitionNumber:表或索引的分区号
PartitionID:数据库范围内唯一的表或索引的分区ID
iam_chain_type:页面所属的分配单元类型:IN_ROW_DATA、ROW_OVERFLOW_DATA、LOB_DATA
PageType:页类型:1=data page,2=index page,3=LOB_MIXED_PAGE,4=LOB_TREE_PAGE,10=IAM page
IndexLevel:索引的级别,0表示叶级
NextPageFID:当前级别的后一页的文件ID
NextPagePID:当前级别的后一页的PageID
PrevPageFID:当前级别的前一页的文件ID
PrevPagePID:当前级别的前一页的PageID
10、查询一个页面的内部存储信息(必须开启跟踪3604的标志才能显示结果)
dbcc page(run,1,22132)
参数:
第一个参数:数据库名或数据库ID
第二个参数:指定数据文件的号filenum
第三个参数:指定的page页号
第四个参数(可选):
0:默认值,输出buffer header 和page header信息
1:输出buffer header,page header,分别输出每行信息,行偏移量
2:输出buffer header,page header,整页数据,行偏移量
3:输出buffer header,page header,分别输出每行信息,行偏移量;分别列出每列的值
11、查看所有的索引对象
select * from run.sys.indexes where object_id=object_id('dbo.test')
12.查看数据库的日志文件
select name from sys.database_files where type=1(1代表日志文件)
13.查看数据库的恢复模式
select name,recovery_model from sys.databases where name='test'
注:1:完整,2:大容量日志,3:简单
14.查看数据库的备份详情
select server_name,machine_name,database_name as dbname,name as backupname,user_name,
database_creation_date,backup_start_date,backup_finish_date,backup_size,type
from msdb.dbo.backupset
注:type的值 : D=数据库,I=差异数据库,L=日志,F=文件或文件组,G=差异文件,P=部分,Q=差异部分