sqlserver查询补全时间_Sqlserver查询性能分析

查询性能分析(执行结果分析)

1

、方法

在查询窗口中输入以下命令

dbcc dropcleanbuffers

--

注释:清除数据

dbcc

freeproccache

--

注释:清除缓存

这是为了每次查询时,不会因为重复查询对结果有干扰,接着在窗口中输入以下命令。

Set statistics io on

--

注释:开启系统资源使用统计

Set statistics time on

--

注释:开启执行时间统计

然后在窗口中输入查询命令

如:

SELECT TOP 1000000 * FROM [SearchInfo]

在消息框中就会出现如下结果

SQL Server parse and compile time:

CPU time = 0 ms, elapsed time = 0 ms.

(999999 row(s) affected)

Table

'SearchInfo'.

Scan

count

1,

logical

reads

17890,

physical

reads

29,

read-ahead

reads

17309, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:

CPU time = 2153 ms,

elapsed time = 22354 ms.

2

、参数

SQL Server parse and compile time

这是指

sql server

解析语句的时间。

(999999 row(s) affected)

查询到的数据量,这个你知

道咯,

只要你的目的是明确的,

那么查询到的数据量应该是不变的,如果改变,那么你的逻

辑是不一致的对不对!

Table

'SearchInfo'.

Scan

count

1,

logical

reads

17890,

physical

reads

29,

read-ahead

reads

17309, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

这一串表示什么呢,

表示数据表

'SearchInfo'

扫描

1

(

Scan count

)

在逻辑区读取了

17890

(

logical reads

)

在物理区读取了

29

次(

physical reads

)提前读取

17309

次(

read-ahead reads

)

lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

100

万条数据全都是

0

,你懂的,忽略它吧

那这串数据中没被忽略的哪些有用呢,

表的扫描次数

Scan count

有用的,

查询次数的多

少表示这个资源你用了多少次,

逻辑区读取次数非常有用,

我们知道,

SQL Server

在可以对

任何数据进行操作前,

必须首先把数据读取到其数据缓冲区中。

此外,

我们也知道

SQL Server

何时会从数据缓冲区中读取数据,并把数据读取到大小为

8K

字节的页中。

Logical Reads

SQL

Server

为得到查询中的结果而必须从数据缓冲区读取的页数。在执行查询时,

SQL

Server

不会读取比实际需求多或少的数据,因此,当在相同的数据集上执行同一个查询,得

到的

Logical Reads

的数字总是相同的。

物理区读取咱忽略它吧,为什么呀?

SQL Server

在执行查询时所需要的物理区读取次数不可能通过性能调节而减少的。

减少

物理读的次数是

DBA

的一项重要工作,但它涉及到整个服务器性能的调节,而不仅仅是查

询性能的调节。

在进行查询性能调节时,

我们不能控制数据缓冲区的大小或服务器的忙碌程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值