使用T-SQL创建索引 语法: CREATE [UNIQUE] [CLUSTERED|NOCLUSTERED] INDEX indexname ON tablename (字段名) [WITH FILLFACTOR=x] 语法说明:UNIQUE指定创建的是唯一索引,可选项CLUSTERED、NOCLUSTERED指定是聚集索引还是非聚集索引,可选项indexname表示索引名, 索引的命名规范是“ix_表名称_列名”。FILLFACTOR表示填充因子,用于设置索引页数据填充的空间百分比,即每个索引页的剩余空间。指定范围是 0~100,假如取值为70%,则表示还有30%的空间供以后扩展使用。0等同于100,表示页级别几乎已填满,但留出了一些空间,至少能在添加一个索引行。 示例如下: USE Bank GO if exists(select name from sysindexes where name='index_card_no') BEGIN drop index ALL_PURPOSE_CARD.index_card_no END create nonclustered index index_card_no on ALL_PURPOSE_CARD (CARD_NO) with fillfactor=30 GO 如上示例使用exists子查询从系统视图sysindex中检查名为index_card_no的索引是否存在。如果存在,则使用drop index语句删除,然后再表ALL_PURPOSE_CARD的 CARD_NO列上创建非聚集索引。一般而言,创建索引后,不需要在查询时显示指定依据那个索引进行查询,因为数据库引擎会自动对查询进行优化。 利用索引进行查询: select * from ALL_PURPOSE_CARD with(index=index_card_no) where LAST_USED_DATE between '2011-07-01'and'2012-12-30' 若存在多个索引可以使用WITH(INDEX=索引名)显示指定索引进行查询 *提醒:使用索引可以加快数据检索速度,但没有必要为每个列都要创建索引,因为索引本身也需要维护 可以依据下列标准选择创建索引:1、该列用于频繁搜索;2、该列用于对数据进行排序;3、该列中重复值少。 下面的列不适合建立索引:1、列中重复值多;2、标中数据少(为小型的表建立索引是不必要的,因为检索索引的时间可能比检索索引的时间还要长);3、频繁进行 插入操作的列(因为每次新添加了数据,索引都需要重新维护)。
视图:视图是一种虚拟表,其内容由查询定义。 使用T-SQL语句创建视图 语法:CREEATE VIEW viewname AS