SQL SERVER 索引与视图学习

   索引的优点。创建唯一性索引可以确保行数据的唯一性;可以大大提高数据的检索速度;可以加速表与表之间的连接;在使用order by,group by之句时,可以减少查询中分组和排序的时间。

   索引的缺点。创建和维护索引需要耗费时间;索引占用物理空间;当对表中的数据进行,删除,更改时,索引也要动态的维护。

创建索引:

 1 CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
 2 INDEX <index name> ON <table or view name>(<column name> [ASC|DESC][,...n])
 3 INCLUDE (<column name> [,...n])
 4 [
 5     WITH
 6     [PAD_INDEX = {ON | OFF}]
 7     [[,] FILLFACTOR = <fillfactor>]
 8     [[,] IGNORE_DUR_KEY = {ON | OFF}]
 9     [[,] DROP_EXISTING = {ON | OFF}]
10     [[,] STATISTICS_NORECOMPUTE = {ON | OFF}]
11     [[,] SORT_IN_TEMPDB = {ON | OFF}]
12     [[,] ONLINE = {ON | OFF}]
13     [[,] ALLOW_ROW_LOCKS = {ON | OFF}]
14     [[,] ALLOW_PAGE_LOCKS = {ON | OFF}]
15     [[,] MAXDOP = <maxinum degree of parallelism>
16 ]
17 [ON {<filegroup> | <partition scheme name> | DEFAULT}]

eg.

USE test1

GO

IF EXISTS(SELECT * FROM SYSINDEXES WHERE NAME='ceshi_index')

DROP INDEX ceshi_index

Create unique nonclustered index ceshi_index

ON orders(customerID)

With FILLFACTOR = 30

GO

 

修改索引

1 Alter index ceshi_index on ceshi Rebuild 
2 With (FILLFACTOR=30,IGNORE_DUP_KEY=ON)

 

视图,如何创建视图

Create VIEW VIEW_NAME

AS

SELECT_STATEMENT

[WITH CHECK OPTION]

需要注意的是,在视图的定义中,select子句中不能包含下列的内容:

compute 或 compute by子句

order by 子句 ,除非select 子句中有top子句

into 关键字

option 子句

引用临时表或表变量

 

视图中修改数据需要注意的事项

1、可以修改由2个或者2个以上的基表得到的视图,但是每一次修改的数据只能影响一个基表。

2、某些列不能修改,这些不能修改的列包括通过计算得到的列,有内置函数的列以及有合计函数的列。

3、如果影响到表中没有默认值得列,可能产生错误。如,在插入数据时。

4、在定义视图时指定了WITH CHECK OPTION 选项,则强制按照select语句标准执行。

 

posted on 2014-10-05 23:31  我性随风  阅读(315)  评论(0编辑  收藏  举报