您的位置:首页 > 数据库

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

2017-12-01 16:39 417 查看

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

所以字段长度是4。

运行

1 DBCC SHOW_STATISTICS(tablename,INDEX OR STATISTICS name)
2
3 DBCC SHOW_STATISTICS([SalesOrderHeader_test],SalesOrderHeader_test_CL)


1 正在更新 [dbo].[testpivot]
2     [_WA_Sys_00000001_0425A276],不需要更新...
3     [_WA_Sys_00000002_0425A276],不需要更新...
4     已更新 0 条索引/统计信息,2 不需要更新。
5
6 正在更新 [dbo].[Users]
7     [IX_UserID],不需要更新...
8     [_WA_Sys_00000002_08EA5793],不需要更新...
9     [_WA_Sys_00000003_08EA5793],不需要更新...
10     [_WA_Sys_00000004_08EA5793],不需要更新...
11     [_WA_Sys_00000005_08EA5793],不需要更新...
12     已更新 0 条索引/统计信息,5 不需要更新。
13
14 正在更新 [dbo].[TABLE1]
15     [INDEX_ID],不需要更新...
16     [INDEX_CATEGORYID],不需要更新...
17     已更新 0 条索引/统计信息,2 不需要更新。
18
19 正在更新 [dbo].[TABLE2]
20     [INDEX_CATEGORYID],不需要更新...
21     已更新 0 条索引/统计信息,1 不需要更新。
22
23 正在更新 [dbo].[Orders]
24     [_WA_Sys_00000005_0EA330E9],不需要更新...
25     已更新 0 条索引/统计信息,1 不需要更新。
26
27 正在更新 [dbo].[Department]
28     [CL_DepartmentID],不需要更新...
29     已更新 0 条索引/统计信息,1 不需要更新。
30
31 正在更新 [dbo].[UserInfo]
32     已更新 0 条索引/统计信息,0 不需要更新。
33
34 正在更新 [dbo].[tb_test]
35     已更新 0 条索引/统计信息,0 不需要更新。
36
37 正在更新 [dbo].[Department9]
38     [NCL_Name_GroupName],不需要更新...
39     已更新 0 条索引/统计信息,1 不需要更新。
40
41 正在更新 [dbo].[bulkinserttest]
42     已更新 0 条索引/统计信息,0 不需要更新。
43
44 正在更新 [dbo].[SystemPara]
45     [_WA_Sys_00000001_173876EA],不需要更新...
46     [_WA_Sys_00000002_173876EA],不需要更新...
47     [_WA_Sys_00000004_173876EA],不需要更新...
48     已更新 0 条索引/统计信息,3 不需要更新。
49
50 正在更新 [dbo].[TB]
51     [_WA_Sys_00000001_178D7CA5],不需要更新...
52     [_WA_Sys_00000002_178D7CA5],不需要更新...
53     [_WA_Sys_00000003_178D7CA5],不需要更新...
54     已更新 0 条索引/统计信息,3 不需要更新。
55
56 正在更新 [dbo].[SQLTRACESAMPLE]
57     已更新 0 条索引/统计信息,0 不需要更新。
58
59 正在更新 [dbo].[HeapTable]
60     [_WA_Sys_00000001_1A69E950],不需要更新...
61     已更新 0 条索引/统计信息,1 不需要更新。
62
63 正在更新 [dbo].[testcolumn]
64     已更新 0 条索引/统计信息,0 不需要更新。
65
66 正在更新 [dbo].[encrypttb_demo]
67     已更新 0 条索引/统计信息,0 不需要更新。
68
69 正在更新 [dbo].[ClusteredTable]
70     [CIX],不需要更新...
71     已更新 0 条索引/统计信息,1 不需要更新。
72
73 正在更新 [dbo].[test23]
74     已更新 0 条索引/统计信息,0 不需要更新。
75
76 正在更新 [dbo].[Table_1]
77     [_WA_Sys_00000002_2022C2A6],不需要更新...
78     [_WA_Sys_00000001_2022C2A6],不需要更新...
79     已更新 0 条索引/统计信息,2 不需要更新。
80
81 正在更新 [dbo].[Department10]
82     [NCL_Name_GroupName],不需要更新...
83     [_WA_Sys_00000003_2116E6DF],不需要更新...
84     已更新 0 条索引/统计信息,2 不需要更新。
85
86 正在更新 [dbo].[BankUser]
87     [PK__BankUser__236943A5],不需要更新...
88     已更新 0 条索引/统计信息,1 不需要更新。
89
90 正在更新 [dbo].[PWDQuestion]
91     [PK__PWDQuestion__2645B050],不需要更新...
92     已更新 0 条索引/统计信息,1 不需要更新。
93
94 正在更新 [dbo].[fulltext_test]
95     [UQ__fulltext_test__28B808A7],不需要更新...
96     [IX_ID],不需要更新...
97     已更新 0 条索引/统计信息,2 不需要更新。
98
99 正在更新 [dbo].[tabelcheckindent]
100     [PK_tabelcheckindent],不需要更新...
101     已更新 0 条索引/统计信息,1 不需要更新。
102
103 正在更新 [dbo].[SecretInfo]
104     已更新 0 条索引/统计信息,0 不需要更新。
105
106 正在更新 [dbo].[Insert_Test]
107     [_WA_Sys_00000001_2A164134],不需要更新...
108     已更新 0 条索引/统计信息,1 不需要更新。
109
110 正在更新 [dbo].[TestInsert]
111     [PK__TestInsert__2B3F6F97],不需要更新...
112     已更新 0 条索引/统计信息,1 不需要更新。
113
114 正在更新 [dbo].[RowToColumn]
115     [_WA_Sys_00000001_2C3393D0],不需要更新...
116     [_WA_Sys_00000002_2C3393D0],不需要更新...
117     [_WA_Sys_00000003_2C3393D0],不需要更新...
118     [_WA_Sys_00000004_2C3393D0],不需要更新...
119     [_WA_Sys_00000005_2C3393D0],不需要更新...
120     [_WA_Sys_00000006_2C3393D0],不需要更新...
121     [_WA_Sys_00000007_2C3393D0],不需要更新...
122     [_WA_Sys_00000008_2C3393D0],不需要更新...
123     已更新 0 条索引/统计信息,8 不需要更新。
124
125 正在更新 [dbo].[Insert_Test2]
126     [PK__Insert_Test2__2DE6D218],不需要更新...
127     已更新 0 条索引/统计信息,1 不需要更新。
128
129 正在更新 [dbo].[pagediff]
130     已更新 0 条索引/统计信息,0 不需要更新。
131
132 正在更新 [dbo].[DP_OilCanOption]
133     [_WA_Sys_00000001_31EC6D26],不需要更新...
134     [_WA_Sys_00000002_31EC6D26],不需要更新...
135     已更新 0 条索引/统计信息,2 不需要更新。
136
137 正在更新 [dbo].[DBCCResult]
138     [_WA_Sys_00000002_32767D0B],不需要更新...
139     [_WA_Sys_0000000A_32767D0B],不需要更新...
140     已更新 0 条索引/统计信息,2 不需要更新。
141
142 正在更新 [sys].[fulltext_catalog_freelist_16]
143     [docid],不需要更新...
144     已更新 0 条索引/统计信息,1 不需要更新。
145
146 正在更新 [sys].[fulltext_index_map_667149422]
147     [i1],不需要更新...
148     [i2],不需要更新...
149     [i3],不需要更新...
150     [i4],不需要更新...
151     已更新 0 条索引/统计信息,4 不需要更新。
152
153 正在更新 [dbo].[计算列]
154     已更新 0 条索引/统计信息,0 不需要更新。
155
156 正在更新 [dbo].[LobTestTable]
157     [_WA_Sys_00000003_351DDF8C],不需要更新...
158     已更新 0 条索引/统计信息,1 不需要更新。
159
160 正在更新 [dbo].[LobIndexTestTable]
161     [IX_LobIndexTestTable],不需要更新...
162     [IX_LobCIndexTestTable],不需要更新...
163     已更新 0 条索引/统计信息,2 不需要更新。
164
165 正在更新 [dbo].[Department3]
166     [CL_DepartmentID],不需要更新...
167     已更新 0 条索引/统计信息,1 不需要更新。
168
169 正在更新 [dbo].[LobCIndexTestTable]
170     [IX_LobCIndexTestTable],不需要更新...
171     已更新 0 条索引/统计信息,1 不需要更新。
172
173 正在更新 [dbo].[Department4]
174     [PK_Department4_1],不需要更新...
175     [_WA_Sys_00000002_3A179ED3],不需要更新...
176     已更新 0 条索引/统计信息,2 不需要更新。
177
178 正在更新 [dbo].[testheap2013119]
179     已更新 0 条索引/统计信息,0 不需要更新。
180
181 正在更新 [dbo].[Department5]
182     [CL_Company],不需要更新...
183     [_WA_Sys_00000002_3CF40B7E],不需要更新...
184     [_WA_Sys_00000001_3CF40B7E],不需要更新...
185     已更新 0 条索引/统计信息,3 不需要更新。
186
187 正在更新 [dbo].[TESTkeylock]
188     [PK_TEST11],不需要更新...
189     已更新 0 条索引/统计信息,1 不需要更新。
190
191 正在更新 [dbo].[Department6]
192     [PK_Department6_1],不需要更新...
193     已更新 0 条索引/统计信息,1 不需要更新。
194
195 正在更新 [dbo].[ChangeAttempt]
196     已更新 0 条索引/统计信息,0 不需要更新。
197
198 正在更新 [dbo].[Department2]
199     [PK__Department2__467D75B8],不需要更新...
200     [_WA_Sys_00000003_4589517F],不需要更新...
201     已更新 0 条索引/统计信息,2 不需要更新。
202
203 正在更新 [dbo].[tempPKNCL]
204     [PK__tempPKNCL__46E78A0C],不需要更新...
205     已更新 0 条索引/统计信息,1 不需要更新。
206
207 正在更新 [dbo].[test_index]
208     [PK__test_index__489AC854],不需要更新...
209     已更新 0 条索引/统计信息,1 不需要更新。
210
211 正在更新 [dbo].[ddl_log]
212     [_WA_Sys_00000002_48CFD27E],不需要更新...
213     [_WA_Sys_00000003_48CFD27E],不需要更新...
214     [_WA_Sys_00000004_48CFD27E],不需要更新...
215     [_WA_Sys_00000005_48CFD27E],不需要更新...
216     已更新 0 条索引/统计信息,4 不需要更新。
217
218 正在更新 [dbo].[Tmp_testComputeColumn]
219     已更新 0 条索引/统计信息,0 不需要更新。
220
221 正在更新 [dbo].[test1]
222     [PK_test1],不需要更新...
223     已更新 0 条索引/统计信息,1 不需要更新。
224
225 正在更新 [dbo].[test13]
226     [pk],不需要更新...
227     已更新 0 条索引/统计信息,1 不需要更新。
228
229 正在更新 [dbo].[Department8]
230     [NCL_Name_GroupName],不需要更新...
231     [_WA_Sys_00000001_52E34C9D],不需要更新...
232     [_WA_Sys_00000003_52E34C9D],不需要更新...
233     已更新 0 条索引/统计信息,3 不需要更新。
234
235 正在更新 [dbo].[Department12]
236     [PK__Department12__7167D3BD],不需要更新...
237     [NCL_Name_GroupName],不需要更新...
238     已更新 0 条索引/统计信息,2 不需要更新。
239
240 正在更新 [dbo].[CompareNonclusteredScan]
241     [_WA_Sys_00000003_73501C2F],不需要更新...
242     已更新 0 条索引/统计信息,1 不需要更新。
243
244 正在更新 [dbo].[Department13]
245     [PK__Department13__762C88DA],不需要更新...
246     [NCL_Name_GroupName],不需要更新...
247     [_WA_Sys_00000003_753864A1],不需要更新...
248     已更新 0 条索引/统计信息,3 不需要更新。
249
250 正在更新 [sys].[queue_messages_1977058079]
251     [queue_clustered_index],不需要更新...
252     [queue_secondary_index],不需要更新...
253     已更新 0 条索引/统计信息,2 不需要更新。
254
255 正在更新 [dbo].[Department11]
256     [PK__Department11__7908F585],不需要更新...
257     [NCL_Name_GroupName],不需要更新...
258     已更新 0 条索引/统计信息,2 不需要更新。
259
260 正在更新 [sys].[queue_messages_2009058193]
261     [queue_clustered_index],不需要更新...
262     [queue_secondary_index],不需要更新...
263     已更新 0 条索引/统计信息,2 不需要更新。
264
265 正在更新 [sys].[queue_messages_2041058307]
266     [queue_clustered_index],不需要更新...
267     [queue_secondary_index],不需要更新...
268     已更新 0 条索引/统计信息,2 不需要更新。
269
270 正在更新 [dbo].[Demo_AExportHeader]
271     已更新 0 条索引/统计信息,0 不需要更新。
272
273 正在更新 [dbo].[table_a]
274     [_WA_Sys_00000001_7B905C75],不需要更新...
275     已更新 0 条索引/统计信息,1 不需要更新。
276
277 正在更新 [dbo].[tableA]
278     [_WA_Sys_00000002_7E6CC920],不需要更新...
279     已更新 0 条索引/统计信息,1 不需要更新。
280
281 已更新了所有表的统计信息。


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