SQL Server 之 DBCC

--检查索引碎片情况

dbcc showconfig(tablename)

具体例子:

--上图为碎片整理之前

ALTER INDEX ALL on Citation REBUILD

--下图为碎片整理之后

-- Extents Switches: Extents Scanned -1

-- Avg. Pages per Extent: 默认 1区8页,小于8,则有外部碎片

-- Avg. Bytes Free per Page: 正常每页 8000 bytes 左右, 该值越高,说明有内部碎片;或者填充因子过低;

外部:区里面有页没被使用

内部: 页内有剩余空间没被使用

dbcc ind(dbname,tablename,#)

-- #: -1~2

-- IndexID:索引类型ID,0表示堆,1表示聚集索引,2-250表示非聚集索引。可以在sys.indexs上查找

-- Page type: 1 = data page, 2 = index page, 3 = LOB_MIXED_PAGE, 4 = LOB_TREE_PAGE, 10 = IAM page

DBCC TRACEOB (3604)
dbcc page (dbname,PageFID,PagePID,#)

-- #:0~3

sp_spaceused tablename

-- reserved: data + index_size + unused

-- data: data page * 8k

-- index_size: index page * 8k + IAM page * 8k

时间: 2024-08-06 20:05:58

SQL Server 之 DBCC的相关文章

SQL Server 影响dbcc checkdb的 8 种因素

第一种: 数据库的大小. 第二种: IO系统的速度. 第三种: 当前CPU的负荷. 第四种: 当前数据库的并发修改量.因为并发修改量越大维护数据库快照的成本就越高,dbcc 的过程中要创建快照,所以. 第五种: 存放tempdb数据库硬盘的速度.dbcc 的过程中会有一些中间结果,而这些结果全放在内存里是不合适也是不可能的.所以有 用到tempdb的空间. 第六种: 数据库中对象的类型,不同类型的对象检查时要的时间也是不一样的.费时的有非聚集索引,计算列,off_row_lob,Server_b

SQL Server 对dbcc checkdb的优化

方法 1. 在运行dbcc checkdb前对数据库进行快照(事务是一致的),dbcc 对快照进行检测,dbcc完成后删除快照. 做快照的目的是为了不要让dbcc 申请太多的锁,从这里可以看出dbcc 可以在多用户模式下进. 方法 2. dbcc还可通知多线程技术,为运行加速.这样做的副作用就是,在这个时间段里正常的连接可能拿不到足够的资源. 方法 3. 可以用physical_only选项,这个选项可以较小的开销检查数据库的物理一致性.并检查出危及数据安全的残缺页,硬件故障.

5. SQL Server数据库性能监控 - 当前请求

对于在线运行的系统,当前数据库性能监控,通常监视以下几点: (1) 是否有阻塞 (Blocking); (2) 是否有等待 (Waiting),阻塞就是锁 (Lock) 等待; (3) 是否运行时间过长(Long running): (4) 是否有死锁 (Deadlock): sys.dm_exec_query_stats之类,等一些统计性的信息,通常不作为实时告警内容,而是在性能优化时,作为参考. 一. 阻塞/等待/长时间运行 1. SQL Server 2005 及以后版本检查 SELECT

菜鸟的sql server

bit 布尔类型 int nvarchar datetime 常用类型 nvarchar(max) 存文章(不超过5000) 字符串 用 '' 1. char/nchar,varchar/nvarchar char(10) 只能放五个中文,定长,如果只放一个字节,后面就是九个空格(一个中文两个字节) nchar(10) 放十个中文,定长 varchar(10)放五个中文,变长,如果只放一个字节,就只放一个字节 nvarchar(10)放十个中文,变长....... 2.创建一个数据库,在数据库里

How can I create a dump of SQL Server?

https://blogs.msdn.microsoft.com/askjay/2009/12/29/basic-debugging-concepts-and-setup/ You can create a memory dump of the SQL Server process space in several ways.  There are many external tools that can help you accomplish this such as userdump.exe

SQL Server :理解数据页结构

我们都很清楚SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行.也就是说,SQL Server 读取或写入所有数据页.页有不同的类型,像数据页,GAM,SGAM等.在这文章里,让我们一起来理解下数据页结构. SQL Server把数据记录存在数据页(Data Page)里.数据记录是堆表里.聚集索引里叶子节点的行. 数据页由3个部分组成.页头(标头),数据区(数据行和可用空间)及行偏移数组. 在我们讨论在SQL Server里,数据页内部结构具

DBCC DBREINDEX重建索引提高SQL Server性能

大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据.索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数据指针来提高数据的索引. 1. 索引的体系结构 为什么要不断的维护表的索引?首先,简单介绍一下索引的体系结构.SQL Server在硬盘中用8KB页面在数据库文件内存放数据.缺省情况下这些页面及其包含的数据是无组织的.为了使混乱变为有序,就要生成索

管家婆SQL SERVER数据库“可能发生了架构损坏。请运行DBCC CHECKCATALOG”修复

用户在使用过过程中,由于突然断电,造成数据无法读取.DBCC检测数据库提示以下错误 消息211,级别23,状态51,第1 行 可能发生了架构损坏.请运行DBCC CHECKCATALOG. 消息0,级别20,状态0,第0 行 当前命令发生了严重错误.应放弃任何可能产生的结果. 如果DBCC检测出现“可能发生了架构损坏.请运行DBCC CHECKCATALOG “这种错误,肯定是系统表出现错误,先使用DBCC CHECKCATALOG对数据库做检测,但发现没有错误. DBCC 执行完毕.如果DBC

对于超大型SQL SERVER数据库执行DBCC操作

原文:对于超大型SQL SERVER数据库执行DBCC操作 对于数据库维护,主要使用DBCC CHECKDB来实现,以下是对大型数据库的使用说明,小型数据库一般直接使用就可以了: 1.2008(2005我不确认)已经实现了快照检查,也就是当你执行DBCC时,DBMS会先快照出一个数据库,然后在快照上执行检查,这样对原来的库不造成锁的影响. 2.使用Physical_only选项,可以以较少的开销检查数据库的物理一致性.并且能检查出会危及用户数据安全的残缺页.校验和错误及常见的硬件故障.所以对于频