1、数据库状态:【1】sys.databases    【2】exec sp_spaceused

2、数据文件状态:【1】sys.master_files  【2】查看ldf与mdf:sp_helpfile、 sys.database_files   【3】文件使用情况:sys.dm_db_file_space_usage

3、日志文件状态:【1】dbcc sqlperf(logspace)   【2】sys.master_files

4、数据文件/日志文件的I/O状态:【1】sys.dm_io_virtual_file_stats(db_id('test')

5、数据库对象状态、数据表状态(包含索引、视图):

  【1】exec sp_spaceused @objname ='temp_lock' / exec sp_spaceused '对象名'

  【2】sys.dm_db_partition_stats  【3】sys.objects

6、索引碎片信息:

  【1】dbcc showcontig(temp_lock)  

  【2】sys.dm_db_index_physical_stats(db_id,object_id,index_id,partition_id,limited/sampled/detailed)

      【2.1】参数1:数据库id,参数2:对象id,参数3:索引id,参数4:分区id,参数5:查询运行模式 limited/sampled/detailed

      【2.2】查询运行模式:(1)limited:iot表扫描索引非叶子节点,heap表全表扫  (2)sampled:1%数据的抽样统计信息  (3)detailed:所有数据页统计信息

7、哪些表需要重建:【1】exec('dbcc extentinfo(''test'') ')

8、tempdb数据库

详情

 
1、数据库状态
--所有数据库的大小exec sp_helpdb--所有数据库的状态select name,user_access_desc,           --用户访问模式state_desc,                 --数据库状态recovery_model_desc,        --恢复模式page_verify_option_desc,    --页检测选项log_reuse_wait_desc         --日志重用等待from sys.databases--某个数据库的大小:按页面计算空间,有性能影响,基本准确,有时不准确use testgoexec sp_spaceused go--可以@updateusage = 'true',会运行dbcc updateusageexec sp_spaceused  @updateusage = 'true'--对某个数据库,显示目录视图中的页数和行数错误并更正DBCC UPDATEUSAGE('test')

2、数据文件状态--查看某个数据库中的所有文件及大小
 sp_helpfile--查看所有文件所在数据库、路径、状态、大小select db_name(database_id) dbname,type_desc,      --数据还是日志name,           --文件的逻辑名称physical_name,  --文件的物理路径state_desc,     --文件状态size * 8.0/1024 as '文件大小(MB)'       from sys.master_files--按区extent计算空间,没有性能影响,基本准确,把TotalExtents*64/1024,单位为MB--同时也适用于计算tempdb的文件大小,但不包括日志文件dbcc showfilestats3、日志文件状态--查看日志文件所在数据库、路径、状态、大小select db_name(database_id) dbname,type_desc,      --数据还是日志name,           --文件的逻辑名称physical_name,  --文件的物理路径state_desc,     --文件状态size * 8.0/1024 as '文件大小(MB)'       from sys.master_fileswhere type_desc = 'LOG'--所有数据库的日志的大小,空间使用率dbcc sqlperf(logspace)4、数据文件/日志文件的I/O状态--数据和日志文件的I/O统计信息,包含文件大小select database_id,file_id,file_handle,           --windows文件句柄sample_ms,             --自从计算机启动以来的毫秒数
             num_of_reads,num_of_bytes_read,io_stall_read_ms,      --等待读取的时间
             num_of_writes,num_of_bytes_written,io_stall_write_ms,io_stall,              --用户等待文件完成I/O操作所用的总时间size_on_disk_bytes     --文件在磁盘上所占用的实际字节数       from sys.dm_io_virtual_file_stats(db_id('test'),   --数据库id1 )  --数据文件id                                      union allselect database_id,file_id,file_handle,           --windows文件句柄sample_ms,             --自从计算机启动以来的毫秒数
             num_of_reads,num_of_bytes_read,io_stall_read_ms,      --等待读取的时间
             num_of_writes,num_of_bytes_written,io_stall_write_ms,io_stall,              --用户等待文件完成I/O操作所用的总时间size_on_disk_bytes     --文件在磁盘上所占用的实际字节数from sys.dm_io_virtual_file_stats( db_id('test'),   --数据库id2 )  --日志文件id5、数据库对象状态、数据表状态(包含索引、视图)--不一定准确:某个表的行数,保留大小,数据大小,索引大小,未使用大小exec sp_spaceused @objname ='temp_lock'--准确:但有性能影响exec sp_spaceused @objname ='temp_lock',@updateusage ='true'--按页统计,没有性能影响,有时不准确select o.name,sum(p.reserved_page_count) as reserved_page_count, --保留页,包含表和索引sum(p.used_page_count) as used_page_count,         --已使用页,包含表和索引sum(case when p.index_id <</CODE>2then p.in_row_data_page_count +p.lob_used_page_count +p.row_overflow_used_page_countelse p.lob_used_page_count +p.row_overflow_used_page_countend) as data_pages,  --数据页,包含表中数据、索引中的lob数据、索引中的行溢出数据sum(case when p.index_id <</CODE> 2then p.row_countelse 0end) as row_counts   --数据行数,包含表中的数据行数,不包含索引中的数据条目数from sys.dm_db_partition_stats pinner join sys.objects oon p.object_id = o.object_idwhere p.object_id= object_id('表名')group by o.name  6、索引碎片信息:  --按页或区统计,有性能影响,准确        --显示当前数据库中所有的表或视图的数据和索引的空间信息--包含:逻辑碎片、区碎片(碎片率)、平均页密度              dbcc showcontig(temp_lock)--SQL Server推荐使用的动态性能函数,准确select *from sys.dm_db_index_physical_stats(db_id('test'),                      --数据库idobject_id('test.dbo.temp_lock'),    --对象idnull,                               --索引idnull,                               --分区号'limited'   --default,null,'limited','sampled','detailed',默认为'limited'--'limited'模式运行最快,扫描的页数最少,对于堆会扫描所有页,对于索引只扫描叶级以上的父级页--'sampled'模式会返回堆、索引中所有页的1%样本的统计信息,如果少于1000页,那么用'detailed'代替'sampled'--'detailed'模式会扫描所有页,返回所有统计信息
     )--查找哪些对象是需要重建的use testgoif OBJECT_ID('extentinfo') is not nulldrop table extentinfogocreate table extentinfo(   [file_id] smallint,page_id int,pg_alloc int,              ext_size int,               obj_id int,                 index_id int,               partition_number int,partition_id bigint,iam_chain_type varchar(50), pfs_bytes varbinary(10))go7、哪些表需要重建insert extentinfoexec('dbcc extentinfo(''test'') ')go--每一个区有一条数据select  file_id,obj_id,               --对象IDindex_id,             --索引id
                  page_id,              --这个区是从哪个页开始的,也就是这个区中的第一个页面的页面号pg_alloc,             --这个盘区分配的页面数量
          ext_size,             --这个盘区包含了多少页
  partition_number,partition_id,iam_chain_type,       --IAM链类型:行内数据,行溢出数据,大对象数据
         pfs_bytesfrom extentinfoorder by file_id,OBJ_ID,index_id,partition_id,ext_sizeselect file_id,obj_id,index_id,partition_id,ext_size,count(*) as '实际区的个数',sum(pg_alloc) as '实际包含的页数',ceiling(sum(pg_alloc) * 1.0 / ext_size) as '理论上的区的个数',ceiling(sum(pg_alloc) * 1.0 / ext_size) / count(*) *  00 as '理论上的区个数 / 实际区的个数'from extentinfogroup by file_id,obj_id,index_id,partition_id,ext_sizehaving ceiling(sum(pg_alloc)*1.0/ext_size) < count(*)  --过滤: 理论上区的个数 < 实际区的个数,也就是百分比小于100%的order by partition_id, obj_id, index_id, [file_id]    8、tempdb数据库--tempdb数据库的空间使用Select DB_NAME(database_id) as DB,max(FILE_ID) as '文件id',        SUM (user_object_reserved_page_count) as '用户对象保留的页数',       ----包含已分配区中的未使用页数SUM (internal_object_reserved_page_count) as '内部对象保留的页数',   --包含已分配区中的未使用页数SUM (version_store_reserved_page_count)  as '版本存储保留的页数',    SUM (unallocated_extent_page_count) as '未分配的区中包含的页数',     --不包含已分配区中的未使用页数  SUM(mixed_extent_page_count) as '文件的已分配混合区中:已分配页和未分配页'  --包含IAM页                        From sys.dm_db_file_space_usage                                         Where database_id = 2 group by DB_NAME(database_id)  --能够反映当时tempdb空间的总体分配,申请空间的会话正在运行的语句SELECTt1.session_id,       t1.internal_objects_alloc_page_count,     t1.user_objects_alloc_page_count,t1.internal_objects_dealloc_page_count ,t1.user_objects_dealloc_page_count,t.textfrom sys.dm_db_session_space_usage  t1   --反映每个session的累计空间申请                               inner join sys.dm_exec_sessions as t2on t1.session_id = t2.session_id          inner join sys.dm_exec_requests t3on t2.session_id = t3.session_id               cross apply sys.dm_exec_sql_text(t3.sql_handle) twhere  t1.internal_objects_alloc_page_count>0   ort1.user_objects_alloc_page_count >0      ort1.internal_objects_dealloc_page_count>0 ort1.user_objects_dealloc_page_count>0   --返回tempdb中页分配和释放活动,--只有当任务正在运行时,sys.dm_db_task_space_usage才会返回值--在请求完成时,这些值将按session聚合体现在SYS.dm_db_session_space_usageselect t.session_id,t.request_id,t.database_id,t.user_objects_alloc_page_count,t.internal_objects_dealloc_page_count,t.internal_objects_alloc_page_count,t.internal_objects_dealloc_page_countfrom sys.dm_db_task_space_usage t  inner join sys.dm_exec_sessions eon t.session_id = e.session_id       inner join sys.dm_exec_requests  r   on t.session_id = r.session_id andt.request_id = r.request_id

转载于:https://www.cnblogs.com/gered/p/10694792.html

(1)DBA查询:数据库相关推荐

  1. DBA查询命令积累——不断更新

    DBA查询命令积累--不断更新 原文:DBA查询命令积累--不断更新 一.服务器配置: 1.兼容级别:兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为. 1.1.查看数据库兼容级别及更改 ...

  2. sql 查询数据库索引重建_不良的数据库索引– SQL查询性能的杀手–建议

    sql 查询数据库索引重建 previous article, we explained what clustered and nonclustered indexes were, and showe ...

  3. php js变量值sql_php 变量查询数据库

    <PHP精粹:编写高效PHP代码>--2.4节PHP数据库对象 本节书摘来自华章社区<PHP精粹:编写高效PHP代码>一书中的第2章,第2.4节PHP数据库对象,作者:(美) ...

  4. [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式

    [数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...

  5. oracle查询数据库名、实例名等

    oracle中: 1.查询数据库名:select name,dbid from v$database;或者show parameter db_name; 2.查询实例名:select instance ...

  6. mysql查询数据库ppt_数据库与数据库服务器.ppt

    <数据库与数据库服务器.ppt>由会员分享,可在线阅读,更多相关<数据库与数据库服务器.ppt(35页珍藏版)>请在人人文库网上搜索. 1.企业网,朱加强 W,作业,画一个网络 ...

  7. Python编程:使用pythink查询数据库

    github:https://github.com/mouday/PyThink 说下这个pythink模块的作用 背景: 我们公司的主要使用的后端语言有两种,python和php Python爬虫 ...

  8. 【Oracle】查询数据库中表名及相关信息、命名空间

    一.若当前账号有DBA权限,可通过查询dba_tables获得相关信息 查询数据库中所有表的信息 select * from dba_tables; 查询某个用户下所有表的信息 select * fr ...

  9. oracle查有哪些数据库,oracle查询数据库(oracle查询所有数据库)

    oracle查询数据库(oracle查询所有数据库) 2020-07-24 12:01:17 共10个回答 PLsql查询工具便可查询 你指所有的表吗?如果你想查数据库中所有的表的话,可以查询sele ...

  10. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

最新文章

  1. UBOOT启动内核过程
  2. SpringMVC环境简单搭建
  3. Android Studio :1、连接手机调试(超级详细;附带连接测试录像);2、点击Button按钮,显示Toast中的内容
  4. 触发器应用场景一: 根据业务逻辑限制某些操作__触发器应用场景二: 校验数据
  5. myEclipse的subversion插件Subclipse
  6. 从零开始搭二维激光SLAM --- 基于g2o的后端优化的代码实现
  7. 服务器pe系统ghost系统安装教程,U盘PE启动安装GHOST系统图文教程
  8. textpattern 在 nginx 上的 rewrite 规则
  9. c语言程序 实现简单计算器功能,C语言实现简单计算器功能(1)
  10. vue 解析并播放amr文件
  11. 高德地图JS-API开发—测距
  12. STM32 外部中断详解(原理+配置代码)
  13. 我的typescript学习心得
  14. 框架分析--框架驱动
  15. 密码学1: 对称加密体系
  16. web前端学习(四):基于koa的EggJs框架,优雅而又完美的Nodejs框架
  17. 计算机一级考试试题没做完 有分吗,全国计算机一级考试选择题有多项选择题吗,判断题有没有的?还有每个部分各占多少分?...
  18. 数据可视化之桑基图制作,其实很简单,只需拖拽就能搞定
  19. 交流转直流降压、稳压电路
  20. 计算机二级证书的含金量不高?别小瞧,这4大优势用处不小

热门文章

  1. 使用bootstrap的相关配置
  2. 北京市交管局联合高德地图发布北京中考出行提示
  3. ssm(spring,springmvc,mybatis)
  4. Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
  5. 让你的微信私人账号也具备公众账号的 关键字回复功能
  6. a20添加usb2net的驱动方法
  7. Mysql命令行下实现数据的导入
  8. Js中fetch方法
  9. Mysql梳理(单表查询)
  10. ansible-vault_使用Ansible Vault改善您的DevOps安全游戏