在我们使用sql优化时,最直观的就是查询时间。但除了查询时间,sqlserver提供了我们多种优化的方式和工具。下面一一给大家介绍。
在使用这些工具之前我们首先要有的一个概念是sqlSever我们操控数据,实际本质是操控文件。
一.数据页
首先我们先创建一个表,然后插入三条数据
create table Person ( name varchar(50), age int ) insert into Person (name, age ) values('张三' , 20),('李四' , 20),('王五' , 20)
我们的记录都是以数据页形式存储的,而且还应该知道数据页的大小是8k。。。。那数据页在哪里?我可以
让你眼见为实。
1 dbcc traceon (2588) --开启2588跟踪 不开启无法使用ind命令 2 3 dbcc help(ind) --查看ind命令所需要的参数
dbcc全名:Database Console Commands。顾名思义“数据库控制台命令”。这个命令大概包含32个公开命令,和100多个非公开命令。而我们的ind命令属于非公开命令,这个命令主要作用是用来查看”堆表“或者”索引“的数据页信息。我们可以通过dbcc help(ind)命令,来查看这个命令的相关参数
前两个参数我想你好理解,第三个参数是最有意思的,这里面的1,0,-1,-2 是什么意思呢???
<1> 1: 显示聚集索引数据页信息和IAM跟踪数据页信息。
<2> 0: 显示堆表数据页信息和IAM跟踪数据页信息。
<3>-1: 显示所有数据页信息,比如(IAM,索引数据页,堆表数据页)。
<4>-2: 显示IAM数据页信息。
<5>nonclustered indid: 从这个参数的排位列表,你大概也能看到是一个”正无限大“到1,0,-1,-2这种模式,仔细想想这个意思我想你也明白,比如
说2就代表第一个非聚集索引,3代表第二个非聚集索引,以此类推。。。。。