1 
 2 
 3 --索引测试
 4 DROP TABLE Bank 
 5 
 6 CREATE TABLE Bank
 7 
 8     AccountNo VARCHAR(20)  PRIMARY KEY ,
 9     AccountName VARCHAR(10),
10     [Address] VARCHAR(100),
11     CurrentMoney DECIMAL,
12     Remark TEXT
13 )
14 ALTER TABLE Bank
15     ADD CONSTRAINT DF_Remark DEFAULT('他什么说明也没有写'FOR Remark
16 
17 --添加测试数据
18 DECLARE @n INT,@i INT,@AccountNo VARCHAR(20),@AccountName VARCHAR(10),@Address VARCHAR(100),@CurrentMoney DECIMAL,@ScrString VARCHAR(100)
19 SET @ScrString='你这他逐步形成档霜要个不是要地睛档案局要地本平村表决权一相'
20 SET @n=0
21 
22 WHILE @n<1000000
23     BEGIN
24         SET @i=0
25         SET @AccountName=''
26         SET @Address=''
27         SET @AccountNo=CONVERT(VARCHAR(4), CONVERT(INTRAND()*8999+1000))+CONVERT(VARCHAR(4), CONVERT(INTRAND()*8999+1000))
28         WHILE @i<2
29             BEGIN
30                 SET @AccountName=@AccountName+SUBSTRING(@ScrString,CONVERT(INTRAND()*25),1)
31                 
32                 SET @i=@i+1
33             END
34         SET @AccountName='名:'+ @AccountName
35 
36         SET @i=0
37         WHILE @i<15
38             BEGIN
39                 SET @Address=@Address+SUBSTRING(@ScrString,CONVERT(INTRAND()*25),1)
40                 SET @i=@i+1
41             END
42 
43         SET @CurrentMoney=RAND()*10000
44         INSERT Bank VALUES(@AccountNo,@AccountName,@Address,@CurrentMoney,DEFAULT)
45     SET @n=@n+1
46 END
47 
48 DELETE Bank
49 
50 TRUNCATE TABLE BANK
51 
52 --添加索引
53 CREATE INDEX  IX_Bank_AccountName ON Bank(AccountName)
54     WITH PAD_INDEX  ,FILLFACTOR = 30
55 
56 CREATE INDEX  IX_Bank_Address ON Bank([Address])
57     WITH PAD_INDEX  ,FILLFACTOR = 30
58 
59 --删除索引
60 DROP INDEX IX_Bank_AccountName ON Bank
61 DROP INDEX IX_Bank_Address ON Bank
62 
63 
64 --清楚缓存
65 DBCC FREEPROCCACHE
66 DBCC DROPCLEANBUFFERS 
67 
68 --这一列比较有规律
69 SELECT * FROM Bank WHERE AccountName='名:霜形'
70 
71 --这一列规律比较差,字段文本比较长,添加索引后效率提高不大
72 SELECT * FROM Bank WHERE [Address] LIKE '%形要案局这霜不你平他要要睛地要%'
posted on 2009-02-20 12:46  Seer Lin  阅读(717)  评论(0编辑  收藏  举报