如何查看磁盘I/O操作信息 SET STATISTICS IO ON 命令是
![](/icons/90102yi.gif)
个 使 SQL Server 显示有关由 Transact-SQL 语句生成
![](/icons/90102de.gif)
磁盘活动量
![](/icons/90102de.gif)
信息
我们在分析索引性能
![](/icons/90102de.gif)
时候
![](/icons/90102dou.gif)
会非常有用
启用了这个属性后
![](/icons/90102dou.gif)
我们在执行 SQL 语句后
![](/icons/90102dou.gif)
会收到类似如下
![](/icons/90102de.gif)
信息
![](/icons/90102dou.gif)
这有利于我们分析SQL
![](/icons/90102de.gif)
性能:
(3999 row(s) affected)
表 'ChargeCL'
![](/icons/90102dou2.gif)
扫描计数 1
![](/icons/90102dou.gif)
逻辑读取 9547 次
![](/icons/90102dou.gif)
物理读取 0 次
![](/icons/90102dou.gif)
预读 0 次
![](/icons/90102dou.gif)
lob 逻辑读取 0 次
![](/icons/90102dou.gif)
lob 物理读取 0 次
![](/icons/90102dou.gif)
lob 预读 0 次
其中
![](/icons/90102de.gif)
lob 逻辑读取、lob 物理读取、lob 预读 这 3个指标是 读取 text、ntext、image 或大值类型 (varchar(max)、nvarchar(max)、varbinary(max)) 时
![](/icons/90102de.gif)
指标
而 逻辑读取、物理读取、预读 是对普通数据页
![](/icons/90102de.gif)
读取
使用 SQL Server Management Studio Standard Reports
我们在 SQL Server Management Studio 中
![](/icons/90102dou.gif)
选择数据库服务器
![](/icons/90102dou.gif)
或者具体数据库
![](/icons/90102dou.gif)
或者Security -- Logins 时
![](/icons/90102dou.gif)
或者Management 时
![](/icons/90102dou.gif)
Not
![](/icons/90102if.gif)
ication Services 或者 SQL Server Agent 对象时候
![](/icons/90102dou.gif)
都会看到SQL Server 替我们提供
![](/icons/90102de.gif)
![](/icons/90102yi.gif)
些现成报表
![](/icons/90102dou.gif)
这些报表
![](/icons/90102de.gif)
数据
![](/icons/90102dou.gif)
有利于我们分析数据库
![](/icons/90102de.gif)
状态
比如在 SQL Server 索引基础知识(1)--- 记录数据
![](/icons/90102de.gif)
基本格式
http://blog.joycode.com/ghj/archive/2008/01/02/113290.aspx
中
![](/icons/90102dou.gif)
我们就使用数据表占用空间
![](/icons/90102de.gif)
报表
具体报表可以参考以下链接:
SQL Server Management Studio Standard Reports - Overview
http://blogs.msdn.com/buckwoody/archive/2007/10/09/sql-server-management-studio-standard-reports-overview.aspx
测试中
![](/icons/90102dou.gif)
释放缓存Cache
![](/icons/90102de.gif)
![](/icons/90102yi.gif)
些思路方法
尤其查询语句性能测试时
![](/icons/90102dou.gif)
数据是否被缓存Cache
![](/icons/90102dou.gif)
这是测试中
![](/icons/90102yi.gif)
个重要点
![](/icons/90102dou2.gif)
下面几个命令帮助我们清除缓存Cache
![](/icons/90102dou2.gif)
方便测试
清除缓存Cache有关
命令: SQL 2000里面除了dbcc unp
![](/icons/90102int.gif)
able好像就没有了 而且这个操作也不会立即释放表内存Buffer
(DBCC UNPINTABLE does not cause the table to be immediately flushed from the data cache. It spec
![](/icons/90102if.gif)
ies that all of the pages for the table in the buffer cache can be flushed
![](/icons/90102if.gif)
space is needed to read in a
![](/icons/90102new.gif)
page from disk.)
SQL 2005/2008让DBA能够更自由
![](/icons/90102de.gif)
对SQL所占用
![](/icons/90102de.gif)
内存空间做处理 如:
CHECKPOINT 将当前数据库
![](/icons/90102de.gif)
全部脏页写入磁盘
![](/icons/90102dou2.gif)
“脏页”是已输入缓存Cache区高速缓存Cache且已修改但尚未写入磁盘
![](/icons/90102de.gif)
数据页
![](/icons/90102dou2.gif)
CHECKPOINT 可创建
![](/icons/90102yi.gif)
个检查点
![](/icons/90102dou.gif)
在该点保证全部脏页都已写入磁盘
![](/icons/90102dou.gif)
从而在以后
![](/icons/90102de.gif)
恢复过程中节省时间
DBCC DROPCLEANBUFFERS
从缓冲池中删除所有清除缓冲区
DBCC FREEPROCCACHE
从过程缓存Cache中删除所有元素
DBCC FREESYSTEMCACHE 从所有缓存Cache中释放所有未使用
![](/icons/90102de.gif)
缓存Cache条目
![](/icons/90102dou2.gif)
SQL Server 2005 数据库引擎会事先在后台清理未使用
![](/icons/90102de.gif)
缓存Cache条目
![](/icons/90102dou.gif)
以使内存可用于当前条目
![](/icons/90102dou2.gif)
但是
![](/icons/90102dou.gif)
可以使用此命令从所有缓存Cache中手动删除未使用
![](/icons/90102de.gif)
条目
另外还可以 sp_cursor_list 查看全部游标
DBCC OPENTRAN查看数据库打开事务状态等
延伸阅读
最新评论