扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:论坛整理 superhasty 来源:天新网 2008年4月23日
关键字: 数据库 Mssql SQL SQL Server
得到结果如下:
1.2 执行高选择性选取
另外,在没有索引的情况下,如果将上例修改为:
以下是引用片段: Select Top 1 * From P_Order 或者Select * From P_Order Where MobileNo=28502 |
可以看到,系统同样要读取全部的数据页到内存。
如果使用Select Top 1 * From P_Order Where MobileNo=28502这样的选取方式,有可能会出现只读取部分数据页到内存的情况。但由于在没有索引情况下,数据实际上是无序存放在堆上,所以结果很不稳定,也有可能发生读取所有的数据页到内存。
2.1 执行全表选取或者低选择性选取
(1000 row(s) affected)
表'P_User'。扫描计数1,逻辑读取6 次,物理读取1 次,预读4 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。
这里的逻辑读取变为6次。
内存情况如下:
另外,可以查看该表索引的级别:
以下是引用片段: SELECT database_id,object_id,index_id,index_level,page_count,record_count FROM sys.dm_db_index_physical_stats (DB_ID(N'TestGDB'), OBJECT_ID(N'dbo.P_User'), NULL, NULL , 'DETAILED'); |
从结果可以看到该表的聚集索引总共分2级。
因而逻辑读增加了2——(由于发生Clustered Index Scan,除了根级别的聚集索引页占用1次外,从根级别聚集索引定位到叶级别的聚集索引也将额外占用1次逻辑读)。
2.2 执行高选择性选取
在建立聚集索引情况下,对性能有益的变化是:
对于Select Top 1 * From P_Order 或者Select * From P_Order Where MobileNo=28702这样的语句,在有聚集索引情况下,只会将最终记录所在的页读入内存。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者