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=差异部分

  

原文地址:https://www.cnblogs.com/jialanyu/p/11813021.html