查看SQLSERVER内部数据页面的小插件Internals Viewer

感觉internals viewer这个名字起得很好,内部查看。

这个小工具是我之前看园子里的某大侠转载的文章是看到的

文章地址:
SQL Server2008存储结构之堆表、行溢出

http://www.cnblogs.com/trams/archive/2010/09/11/1823727.html

这几天研究了一下这个小工具,发现挺好用的,对入想深入研究或者刚刚学SQLSERVER但是想对SQL有更深入了解的朋友们特别有用


先给出下载地址,这个是codeplex上的一个项目:

http://internalsviewer.codeplex.com/

我也上传到了自己的网盘,大家也可以到我的网盘下载:http://www.kuaipan.cn/file/id_4401224786924003.htm

InternalsViewerInstaller.msi 安装就不说了,直接双击安装,安装前最好先关闭SSMS

官方上说:可以用在SQL2005 SQL2008  ,我自己的电脑是SQL2005 Windows7可以使用

下载安装好之后,再打开SSMS,会看到SSMS的菜单增加了一个

点击Internals Viewer会有两个菜单:display transaction logAllocation Map

不知道为什么display transaction log用不了,本人非常想知道display transaction log是什么功能

只好点击“Allocation Map” ,点击之后会弹出 连接对话框,大家选择验证方式连接就可以了不多说了


打开之后会看到如下图

上面几个按钮

选择要查看的数据库

PFS:查看数据库的空闲页面情况

buffer pool:看下图

small:调整小方格的大小

key:是否显示数据库的表,如果不点击key下面不会显示表的

File Details:看上面那个图


小方格颜色的含义

点击某个小方格就会显示那个小方格的信息,每个小方格代表一个页面

小方格的颜色是跟下面表格的颜色是一一对应的,表示这些表格数据在数据库中的分布情况

鼠标在小方格上移动会看到这个小方格属于哪个表

 鼠标左键单击某个小方格会显示这个页面的信息

如果你想看某个表的数据,你可以点击那个表,然后就会显示出那个表的数据分布情况,你点击某个小方格就可以看到那个表的数据了~


先从数据库的开头几个页面说起吧

数据库第1页:file header page

数据库第2页:PFS  (Page Free Space) ,也叫页面自由空间,该页面用来跟踪一个文件中每一个特定页面的利用率情况

数据库第3页:GAM 全局分配映射(Global Allocation Map,GAM)页面  这些页面记录了哪些区已经被分配并用作何种用途

数据库第4页:SGAM 共享全局分配映射(Shared Global Allocation Map,SGAM)页面  这些页面记录了哪些区当前被用作混合类型的区,并且这些区需含有至少一个未使用的页面

第5页没有数据

第6页没有数据

数据库第7页:DCM 差异变更(Differential Changed Map,DCM)页面 他跟踪一个文件中的哪一个区在最新一次完整数据库备份之后被修改过。SQLSERVER
用在增量备份时只对已发生数据变更的分区进行增量备份即可

资料:SQL Server 2008 存储结构之DCM、BCM

数据库第8页:BCM 批量更改映射(Bulk Changed Map)页面,该页面当文件中的一个区在最小量或批量日志操作中被
使用时用到。

数据库第9页:sys.sysqnames 存在于每个数据库中。

4 字节 ID 标记的每个命名空间或限定名均存在对应的一行。

像dbcc checkprimaryfile命令的信息应该就存储于这个页面中

数据库第10页:boot page 数据库根据这个页面的信息来启动的

http://www.cnblogs.com/double-K/p/5557748.html#top

m_type=15   file header page   第1页
m_type=11   PFS   第2页
m_type=8    GAM   第3页
m_type=9    SGAM  第4页
m_type=0    保留页
m_type=0    保留页
m_type=16   DCM   第7页
m_type=17   BCM   第8页


IAM页面

下面那里写错了,应该是堆表才有


具体页面信息

每个小方格代表一个页面,左边这些信息估计是使用了这两条语句:DBCC IND()   DBCC PAGE()

 下方显示对应的表数据

左上角显示了这个页面是数据页还是IAM页


数据行的结构

关于数据行的结构,大家可以看文章最开始给出的

文章地址: SQL Server2008存储结构之堆表、行溢出

http://www.cnblogs.com/trams/archive/2010/09/11/1823727.html

我摘抄一部分

其中状态A为如下说明:
 
  bit0:版本信息,在SQL Server 2005/08总是为0
 
  bit1-3: 0=(primary record);1=(forwarded record);2=(forwarding stud);3=(index record);4=(溢出数据);5=(ghost索引记录);6=(ghost数据记录)
 
  bit4:表示存在NULL位图(在数据行里SQL2005/08总存在NULL位图)
 
  bit5:表示存在变长列
 
  bit6:未启用
 
  bit7:表示存在幽灵记录
 
  本例中30->00110000 它是一个行属性的位图 从高位存到低位(右边第一位是bit0),bit4为1即存在变长列的字段,因为在SQLServer2005/2008中总存在NULL位图,所以bit5也为1。
 
  状态位B在SQLServer2005//2008中未启用,所以为00


IAM页和数据页的差别

堆表只依靠表里的IAM页(索引分配映射页)将堆的页面联系在一起,IAM里记录了页面编号,页面位置

红色的小方格就是记录了sys.syscolpars这张表他的数据页面在数据库中的分布情况


关于这个软件

我点击了一下IAM页面下方的小方格就报错了,然后弹出一个对话框,原来这个软件使用.NET来编写的

我们国人什么时候也能够写一个呢?

----------------------------------------------------------------------------------------------------

最后附上各个系统页面的作用和详细介绍地址

PFS页面介绍:  http://dev.21tx.com/2011/11/24/11378.html
DCM BCM页面介绍:  http://tech.it168.com/a2010/0921/1106/000001106857.shtml
GAM SGAM页面介绍:http://www.efficient-it.com.cn/space/78/viewspace/itemid/6756.html

查看SQLSERVER内部数据页面的小插件Internals Viewer相关推荐

  1. 三种查看SqlServer中数据物理pge页的方法

    1.根据数据记录查看当前记录所在的文件编号.page页.以及在页中的插槽. 示例如下: SELECT top 10 %%physloc%%, sys.fn_physlocFormatter (%%ph ...

  2. 第十二周《支持SQl Server内部,第二版》CHAR1数据页面和数据行 作者Dmitri Korotkevitch

    数据页面和数据行 数据库中的空间分为逻辑8KB页面. 这些页面从零开始连续编号,可以通过指定文件ID和页码来引用它们. 页面编号始终是连续的,这样当SQL Server增长数据库文件时,新页面将从文件 ...

  3. excel透视表无添加字段_为内部字段添加数据透视表小计

    excel透视表无添加字段 How was your weekend weather? We had a mini-blizzard yesterday, that covered the backy ...

  4. jsonview浏览器插件 查看格式化json数据

    在开发过程中前端工程师经常会在浏览器输入接口来查看后台的数据,一般后台返回的是json 格式的数据,数据多了,浏览器显示的就是一堆,眼花缭乱,为了看清楚数据结构,我们通常采用的方法是去json在线解析 ...

  5. Sharepoint 2013 页面置顶(Topbar)小插件

    Sharepoint  2013 页面置顶(Topbar)小插件 需求分析:主页面上加入Topbar功能,当页面向下滚动了,就出现Topbar图标,回滚到页面顶部.但是,需求的母版页中有底边栏,当滚动 ...

  6. pyqt5小插件-记录采集数据的质量加入文本

    代码地址git clone https://gitee.com/chuge325/pyqt5_addin_collect.git 为了在采集数据中,对数据的质量进行采集统计,我用python做了一个小 ...

  7. 2.mybatis实用小插件

    我们在使用 MyBatis时,经常会用到一些单表查询,但是不得不在 *Mapper.xml 中写简单 sql,而如 selectUserBy(Long id) 这种情况,也需要在 Mapper.xml ...

  8. 美云智数|数据“灯塔”:小程序的运营之“光”

    小程序的诞生之初,微信曾邀请过上百家企业共同开启小程序内测,但由于页面设计.用户体验等问题,小程序并不被业内所看好.如今,小程序优化了内部的系统,俨然已成为新的行业风口.它架起了用户和开发者之间便利的 ...

  9. 从Apache的日志文件收集和提供统计数据(一个Python插件架构的简单实现)

    从Apache的日志文件收集和提供统计数据 这一章我们将介绍基于插件程序的架构和实现.作为例子,我们将构建一个分析Apache服务器log文件的框架.这一次我们不再使用单片机的方式来创建,而是改为采用 ...

  10. 传递给系统调用的数据区域太小怎么解决_40张图看懂分布式追踪系统原理及实践...

    作 者:码海 原文链接:https://mp.weixin.qq.com/s/U-8ttlVCfYtjEPOWKBHONA 前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互 ...

最新文章

  1. Listview的点击效果
  2. 深入理解 Laravel Eloquent(三)——模型间关系(关联)
  3. webpack加载postcss,以及autoprefixer的loader
  4. Android复习11【service-音乐播放器、定时器、IntentService、ALDL使用】
  5. 中累计直方图_试验研究中的利器强大的直方图和箱线图
  6. 关于Modernizr的使用
  7. pycharm中python版本_在 Pycharm(2019,.3)里配置 Anaconda3 的 Python 版本
  8. 阿斯顿马丁宣布放弃内燃机:2026年开始只销售电动或混动车
  9. GDB Watchpoints
  10. 汇编观察a++和++a
  11. python 流写入文件_Python数据流写入文件
  12. 使用vagrant快速创建Linux(centos/7)
  13. sourceInsight
  14. 泛微:移动办公专家 未来OA引爆京城
  15. 认识计算机拓扑结构图,认识一下网络拓扑,几张图片几条线。
  16. QGIS快速提取建筑和道路矢量
  17. 一键删除PPT页面内的动画or页面的切换效果总结
  18. 方正飞鸿智能信息平台(Fix ES2007)
  19. 百度地图经纬度距离计算
  20. 国密浏览器介绍与下载

热门文章

  1. (转)今天的人工智能比肩工业革命毫不夸张
  2. CTP: 找ActionDay 和TradingDay说点事
  3. 阿里巴巴CTO程立:践行“好科技”,我们正在做这些事
  4. 开放、创新、合作,共赢多样性计算新时代
  5. 各行各业有对象系列之三:对象存储与银行
  6. 【心电信号】基于matlab小波变换心电信号去噪【含Matlab源码 956期】
  7. go 变量大写_golang学习笔记(一):包,变量,函数
  8. 【C++】常用查找算法
  9. php怎么把时间精确到毫秒,如何使用php获取当前时间戳、日期并精确到毫秒
  10. python ctp接口_Python-CTP PyCTP 接口