笔记111 单表插入100W条记录还有博客园索引的测试结果
1 --单表插入100W条记录还有博客园索引的测试结果
2 --测试网址:http://www.cnblogs.com/lzrabbit/archive/2012/05/21/2499389.html#2383857
3
4 --先删除所有表数据,在做测试之前要是一个空表
5 --USE pratice
6 --DELETE FROM dbo.test
7 --建立索引
8 --CREATE INDEX IX_ABC ON dbo.test(c,d)
9
10 --插入数据 100W条记录
11 --USE pratice
12 --DECLARE @MyCounter INT
13 --DECLARE @MyDecimal INT
14 --SET @MyCounter = 0 /*设置变量*/
15 --SET @MyDecimal =0
16 --
17 --
18 --
19 --WHILE @MyCounter <400000 --执行3次,第一次@MyCounter <300000 30W条记录 第二次@MyCounter <300000 60W条记录 第三次@MyCounter <400000 40W条记录
20 --BEGIN
21 --INSERT INTO dbo.test
22 --SELECT @MyCounter+1,'坏人','2011-8-2 21:21:00','超级坏',@MyDecimal+9
23 --
24 --
25 --SET @MyCounter = @MyCounter + 1
26 --SET @MyDecimal =@MyDecimal +1
27 --END
28
29 --看一下现在表有多少条记录
30 --SELECT COUNT(*) FROM dbo.test
31
32 ------------------------华丽的分割线----------------------------------------------------
33
34 --第一种:select 后面没有索引的 结果两个语句都使用表扫描
35 --SET STATISTICS TIME ON
36 --SET STATISTICS IO ON
37 --SELECT a,b FROM dbo.test WHERE d='超级坏'
38 --
39 --SELECT a,b FROM dbo.test WHERE c='2011-8-2 21:21:00' AND d='超级坏'
40
41 --(400000 行受影响)
42 --表 'test'。扫描计数 1,逻辑读取 5961 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
43 --
44 --(1 行受影响)
45 --
46 --SQL Server 执行时间:
47 -- CPU 时间 = 437 毫秒,占用时间 = 8649 毫秒。
48 --SQL Server 分析和编译时间:
49 -- CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
50 --
51 --(400000 行受影响)
52 --表 'test'。扫描计数 1,逻辑读取 5961 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
53 --
54 --(1 行受影响)
55 --
56 --SQL Server 执行时间:
57 -- CPU 时间 = 405 毫秒,占用时间 = 8552 毫秒。
58 --SQL Server 分析和编译时间:
59 -- CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
60 --
61 --SQL Server 执行时间:
62 -- CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
63
64 --第二种:select 后面有索引的
65
66 --SELECT c,d FROM dbo.test WHERE d='超级坏' --索引扫描
67 --
68 --SELECT c,d FROM dbo.test WHERE c='2011-8-2 21:21:00' AND d='超级坏' --索引查找
69 --
70 --(400000 行受影响)
71 --表 'test'。扫描计数 3,逻辑读取 5606 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
72 --
73 --(1 行受影响)
74 --
75 --SQL Server 执行时间:
76 -- CPU 时间 = 640 毫秒,占用时间 = 8614 毫秒。
77 --SQL Server 分析和编译时间:
78 -- CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
79 --
80 --(400000 行受影响)
81 --表 'test'。扫描计数 1,逻辑读取 1953 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
82 --
83 --(1 行受影响)
84 --
85 --SQL Server 执行时间:
86 -- CPU 时间 = 203 毫秒,占用时间 = 8289 毫秒。
87 --SQL Server 分析和编译时间:
88 -- CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
89 --
90 --SQL Server 执行时间:
91 -- CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。