扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:论坛整理 superhasty 来源:天新网 2008年4月23日
关键字: 数据库 Mssql SQL SQL Server
众所周知,SQL Server
我们首先来看一个简单的实例。创建下表:
以下是引用片段: Create Table P_User ( UserMobileStatus int NOT NULL, MobileNo int NOT NULL, LastOpTime DateTime Not NULL ) |
以下是引用片段: Declare @i int Set @i=28000 WHILE @i<29000 BEGIN Insert Into P_User Select @i % 2,@i,GetUTCDate() Set @i=@i+1 END |
以下是引用片段: Set Statistics IO ON |
并按下Ctrl+M以显示实际的执行计划。
此时,可以开始进行我们的试验了。为了准确观察每一次SQL语句变化情况,在执行第一条SQL语句以前,我们首先清空SQL Server所占用的数据内存:
以下是引用片段: CHECKPOINT GO DBCC DROPCLEANBUFFERS |
这将清空SQL Server所占用的数据缓冲区(此语句在生产服务器上慎用,因为将导致一段时间内后续的SQL语句执行变慢)。
测试1:在没有索引的表上执行SQL语句
1.1 执行全表选取或者低选择性选取
Select * From P_User
从SQL执行计划可以看到,由于此时表中没有任何索引,因此将产生Table Scan。而IO统计结果如下:
(1000 row(s) affected)
我们看一下数据库内存中的情况。
首先查询到我们所操作database的database_id:
以下是引用片段: Select database_id From sys.databases Where name='TestGDB' |
然后使用该database_id从表中查看内存情况:
以下是引用片段: SELECT * FROM sys.dm_os_buffer_descriptors bd WHERE database_id=5 order by allocation_unit_id,page_id |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者