您的位置:首页 > 数据库

SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇)

2012-12-29 17:02 267 查看

SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇)

最近真的没有什么精力写文章,天天加班,为了完成这个系列,硬着头皮上了

再看这篇文章之前请大家先看我之前写的第一篇和第二篇

第一篇:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)

第二篇:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第二篇)

1、统计信息的含义与作用

为了以尽可能快的速度完成语句,光有索引是不够的。对于同一句话,SQLSERVER有很多种方法来完成他。

有些方法适合于数据量比较小的时候,有些方法适合于数据量比较大的时候。同一种方法,在数据量不同的时候,

复杂度会有非常大的差别。索引只能帮助SQLSERVER找到符合条件的记录。SQLSERVER还需要知道每一种操作

所要处理的数据量有多少,从而估算出复杂度,选取一个代价最小的执行计划。说得通俗一点,SQLSERVER要能够

知道数据是“长得什么样”的才能用最快方法完成指令

SQLSERVER不像人,光看看数据就能够大概心理有数。那么怎麽能让SQL知道数据的分布信息呢?

在数据库管理系统里有个常用的技术,就是数据“统计信息(statistics)”

SQLSERVER就是通过他了解数据的分布情况的

下面可以先来看前两篇文章的两张范例表在SalesOrderID这个字段上的统计信息,以便对这个概念有点直观认识

dbo.SalesOrderHeader_test保存的是每张订单的概要信息,一张订单只会有一条记录

所以SalesOrderID是不会重复的。现在这张表里,应该有31474条记录。SalesOrderID是一个int型的字段,

所以字段长度是4。

运行

DBCC SHOW_STATISTICS(tablename,INDEX OR STATISTICS name)

DBCC SHOW_STATISTICS([SalesOrderHeader_test],SalesOrderHeader_test_CL)


正在更新 [dbo].[testpivot]
[_WA_Sys_00000001_0425A276],不需要更新...
[_WA_Sys_00000002_0425A276],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[Users]
[IX_UserID],不需要更新...
[_WA_Sys_00000002_08EA5793],不需要更新...
[_WA_Sys_00000003_08EA5793],不需要更新...
[_WA_Sys_00000004_08EA5793],不需要更新...
[_WA_Sys_00000005_08EA5793],不需要更新...
已更新 0 条索引/统计信息,5 不需要更新。

正在更新 [dbo].[TABLE1]
[INDEX_ID],不需要更新...
[INDEX_CATEGORYID],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[TABLE2]
[INDEX_CATEGORYID],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[Orders]
[_WA_Sys_00000005_0EA330E9],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[Department]
[CL_DepartmentID],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[UserInfo]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[tb_test]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[Department9]
[NCL_Name_GroupName],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[bulkinserttest]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[SystemPara]
[_WA_Sys_00000001_173876EA],不需要更新...
[_WA_Sys_00000002_173876EA],不需要更新...
[_WA_Sys_00000004_173876EA],不需要更新...
已更新 0 条索引/统计信息,3 不需要更新。

正在更新 [dbo].[TB]
[_WA_Sys_00000001_178D7CA5],不需要更新...
[_WA_Sys_00000002_178D7CA5],不需要更新...
[_WA_Sys_00000003_178D7CA5],不需要更新...
已更新 0 条索引/统计信息,3 不需要更新。

正在更新 [dbo].[SQLTRACESAMPLE]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[HeapTable]
[_WA_Sys_00000001_1A69E950],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[testcolumn]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[encrypttb_demo]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[ClusteredTable]
[CIX],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[test23]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[Table_1]
[_WA_Sys_00000002_2022C2A6],不需要更新...
[_WA_Sys_00000001_2022C2A6],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[Department10]
[NCL_Name_GroupName],不需要更新...
[_WA_Sys_00000003_2116E6DF],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[BankUser]
[PK__BankUser__236943A5],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[PWDQuestion]
[PK__PWDQuestion__2645B050],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[fulltext_test]
[UQ__fulltext_test__28B808A7],不需要更新...
[IX_ID],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[tabelcheckindent]
[PK_tabelcheckindent],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[SecretInfo]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[Insert_Test]
[_WA_Sys_00000001_2A164134],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[TestInsert]
[PK__TestInsert__2B3F6F97],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[RowToColumn]
[_WA_Sys_00000001_2C3393D0],不需要更新...
[_WA_Sys_00000002_2C3393D0],不需要更新...
[_WA_Sys_00000003_2C3393D0],不需要更新...
[_WA_Sys_00000004_2C3393D0],不需要更新...
[_WA_Sys_00000005_2C3393D0],不需要更新...
[_WA_Sys_00000006_2C3393D0],不需要更新...
[_WA_Sys_00000007_2C3393D0],不需要更新...
[_WA_Sys_00000008_2C3393D0],不需要更新...
已更新 0 条索引/统计信息,8 不需要更新。

正在更新 [dbo].[Insert_Test2]
[PK__Insert_Test2__2DE6D218],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[pagediff]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[DP_OilCanOption]
[_WA_Sys_00000001_31EC6D26],不需要更新...
[_WA_Sys_00000002_31EC6D26],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[DBCCResult]
[_WA_Sys_00000002_32767D0B],不需要更新...
[_WA_Sys_0000000A_32767D0B],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [sys].[fulltext_catalog_freelist_16]
[docid],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [sys].[fulltext_index_map_667149422]
[i1],不需要更新...
[i2],不需要更新...
[i3],不需要更新...
[i4],不需要更新...
已更新 0 条索引/统计信息,4 不需要更新。

正在更新 [dbo].[计算列]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[LobTestTable]
[_WA_Sys_00000003_351DDF8C],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[LobIndexTestTable]
[IX_LobIndexTestTable],不需要更新...
[IX_LobCIndexTestTable],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[Department3]
[CL_DepartmentID],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[LobCIndexTestTable]
[IX_LobCIndexTestTable],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[Department4]
[PK_Department4_1],不需要更新...
[_WA_Sys_00000002_3A179ED3],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[testheap2013119]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[Department5]
[CL_Company],不需要更新...
[_WA_Sys_00000002_3CF40B7E],不需要更新...
[_WA_Sys_00000001_3CF40B7E],不需要更新...
已更新 0 条索引/统计信息,3 不需要更新。

正在更新 [dbo].[TESTkeylock]
[PK_TEST11],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[Department6]
[PK_Department6_1],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[ChangeAttempt]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[Department2]
[PK__Department2__467D75B8],不需要更新...
[_WA_Sys_00000003_4589517F],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[tempPKNCL]
[PK__tempPKNCL__46E78A0C],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[test_index]
[PK__test_index__489AC854],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[ddl_log]
[_WA_Sys_00000002_48CFD27E],不需要更新...
[_WA_Sys_00000003_48CFD27E],不需要更新...
[_WA_Sys_00000004_48CFD27E],不需要更新...
[_WA_Sys_00000005_48CFD27E],不需要更新...
已更新 0 条索引/统计信息,4 不需要更新。

正在更新 [dbo].[Tmp_testComputeColumn]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[test1]
[PK_test1],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[test13]
[pk],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[Department8]
[NCL_Name_GroupName],不需要更新...
[_WA_Sys_00000001_52E34C9D],不需要更新...
[_WA_Sys_00000003_52E34C9D],不需要更新...
已更新 0 条索引/统计信息,3 不需要更新。

正在更新 [dbo].[Department12]
[PK__Department12__7167D3BD],不需要更新...
[NCL_Name_GroupName],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[CompareNonclusteredScan]
[_WA_Sys_00000003_73501C2F],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[Department13]
[PK__Department13__762C88DA],不需要更新...
[NCL_Name_GroupName],不需要更新...
[_WA_Sys_00000003_753864A1],不需要更新...
已更新 0 条索引/统计信息,3 不需要更新。

正在更新 [sys].[queue_messages_1977058079]
[queue_clustered_index],不需要更新...
[queue_secondary_index],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[Department11]
[PK__Department11__7908F585],不需要更新...
[NCL_Name_GroupName],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [sys].[queue_messages_2009058193]
[queue_clustered_index],不需要更新...
[queue_secondary_index],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [sys].[queue_messages_2041058307]
[queue_clustered_index],不需要更新...
[queue_secondary_index],不需要更新...
已更新 0 条索引/统计信息,2 不需要更新。

正在更新 [dbo].[Demo_AExportHeader]
已更新 0 条索引/统计信息,0 不需要更新。

正在更新 [dbo].[table_a]
[_WA_Sys_00000001_7B905C75],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

正在更新 [dbo].[tableA]
[_WA_Sys_00000002_7E6CC920],不需要更新...
已更新 0 条索引/统计信息,1 不需要更新。

已更新了所有表的统计信息。


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐