创建海量数据库,测试sql语句,建立索引

一:利用北风数据库创建海量数据表
USE northwind
SELECT COUNT(*) FROM customers
SELECT * INTO Tempt FROM customers
SELECT COUNT(*) FROM Tempt
GO
DECLARE @i Integer
SET @i = 1
WHILE @i < 10 BEGIN INSERT INTO Tempt SELECT * FROM Tempt SET @i = @i + 1 END
SELECT COUNT(*) FROM Tempt
SELECT Identity( int, 1, 1 ) AS PK, * INTO BigTable FROM Tempt
GO
SELECT COUNT(*) FROM BigTable
GO
DROP table Tempt
CREATE CLUSTERED INDEX BigTable_Index
ON BigTable (PK)
原先customers表中有数据91条,经过上面语句BigTable数据量为46592条(91的10次方),更改@i的值可以得到更大的值。
select * from bigtable where px=20
参照上面的sql语句,只要是where语句后面的条件是索引,速度非常之快。(1500000)条数据下测试。如果没有索引,需耗时20秒。
二、建立索引
建立索引时,一般先创建簇索引,再创建非簇索引。
索引分为三类(1)unique(2)clustered(3)nonclustered
实例:
(1)create unique index my_index on titles(title_id)
(2)CREATE CLUSTERED INDEX BigTable_Index ON BigTable(PK, customerid, companyname)
(3)create index my_index2 on authors(au_lname,au_fname)等同于create nonclustered index my_index2 on authors(au_lname,au_fname)
簇索引clustered,索引的逻辑结构与行的物理顺序相同,只能有一个簇索引,速度很快。
非簇索引nonclustered 索引的逻辑结构与行的物理顺序不相同,可以建立多个非簇索引。
复合索引,指定了多个列名就是复合索引,最大组合16个列。并且所组合的所有列的存储空间不超过256个字节。
三、删除索引
drop index authors.my_index2;
posted @ 2011-05-20 16:02  rob_2010  阅读(309)  评论(0)    收藏  举报