--------------------------------- 索引 ---------------------------------
语法: CREATE [索引类型] INDEX 索引名称 ON 表名(列名) WITH FILLFACTOR = 填充因子值0~100 GO /*实例*/ CREATE NONCLUSTERED INDEX Index_NotePage_ShareState --创建一个非聚集索引 ON NDB.dbo.NotePage(ShareState) --为TEST表的TNAME字段创建索引 WITH FILLFACTOR = 30 --填充因子为30% GO 添加索引 IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_writtenExam') DROP INDEX testtable.IX_writtenExam /*--笔试列创建非聚集索引:填充因子为%--*/ CREATE NONCLUSTERED INDEX IX_writtenExam ON testtable(id) WITH FILLFACTOR= 30 GO 查询测试 /*-----指定按索引IX_writtenExam 查询----*/ declare @startTime datetime SET @startTime = GETDATE(); SELECT sum(ID) FROM testtable with (INDEX=IX_writtenExam) declare @endtime datetime SET @endtime = GETDATE(); print datediff(ms,@startTime,@endtime) SELECT sum(ID) FROM testtable --------------------------------- 添加数据---------------------------------
SET IDENTITY_INSERT TestTable ON declare @i int set @i=1 while @i<=400000 begin insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX') set @i=@i+1 end SET IDENTITY_INSERT TestTable OFF
--------------------------------- 快速查看执行速度---------------------------------
select语句前加: declare @d datetime set @d=getdate() 并在select语句后加: select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())
INSERT INTO userinfo (pwd, name) VALUES (@pwd, @name) SELECT @@IDENTITY AS Id
AS后名字是任取的IDENTITY是主键的意思,所以一定要有主键才可返回
◆脏读:一个事务会读进还没有被另一个事务提交的数据,所以你会看到一些最后被另一个事务回滚掉的数据。
【正在修改中的数据被读取】
◆ 读值不可复现:一个事务读进一条记录,另一个事务更改了这条记录并提交完毕,这时候第一个事务再次读这条记录时,它已经改变了。
【正在查询中的数据被修改】
◆ 幻影读:一个事务用Where子句来检索一个表的数据,另一个事务插入一条新的记录,并且符合Where条件,这样,第一个事务用同一个where条件来检索数据后,就会多出一条记录。
【正在查询中的数据表,又被其它实务加了一行】