SQL语句-创建索引
(2011-08-19 21:35:31)
标签:
杂谈 |
分类: 数据库 |
SQL语句-创建索引
2008-09-22
17:43:18|
创建索引的实例说明:
|
语法: CREATE [索引类型] INDEX 索引名称 ON 表名(列名) WITH FILLFACTOR = 填充因子值0~100 GO USE 库名 GO IF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引 DROP INDEX TEST.IX_TEST_TNAME--如果存在则删除 --创建索引 CREATE NONCLUSTERED INDEX IX_TEST_TNAME --创建一个非聚集索引 ON
TEST(TNAME) WITH FILLFACTOR = 30 --填充因子为30% GO SELECT * FROM TEST(INDEX = IX_TEST_TNAME) WHERE TNAME = 'A' --指定按‘IX_TEST_TNAME’索引查询 总结:
注意:如果表中仅有几行,或列中只包含几个不同的值,不推荐创建索引,因为SQL Server 在小型表中用索引搜索数据所花的时间比逐行搜索更长。 ######################################################## 以下是对索引的理解: ************************************************************************************ 在SQL Server 中创建索引的方法 ***********************************************************************************
1.利用企业管理器中的索引向导创建索引。 2.利用企业管理器直接创建索引。 3.利用Transact-SQL语句中的CREATE INDEX命令创建索引。 4.利用企业管理器中的索引优化向导创建索引。
其具体步骤如下: 1.在企业管理器中,展开指定的服务器和数据库,选择要创建索引的表,用右键单击该表,从弹出的快捷菜单中选择所有任务项的管理索引选项,就会出现管理索引对话框。在该对话框中,可以选择要处理的数据库和表 。 2.单击“新建”按钮,则出现新建索引对话框. 3.选择完成后单击“确定”按钮,即可生成新的索引;单击“取消”按钮,则取消新建索引的操作。
其语法形式如下: CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) [with [PAD_INDEX] [[,]FILLFACTOR=fillfactor][[,]IGNORE_DUP_KEY] [[,]DROP_EXISTING]
[[,]SORT_IN_TEMPDB] ] [ ON filegroup ]
UNIQUE:用于指定为表或视图创建唯一索引,即不允许存在索引值相同的两行。 CLUSTERED:用于指定创建的索引为聚集索引。 NONCLUSTERED:用于指定创建的索引为非聚集索引。 index_name:用于指定所创建的索引的名称。 table:用于指定创建索引的表的名称。 view:用于指定创建索引的视图的名称。 ASC|DESC:用于指定具体某个索引列的升序或降序排序方向。 Column:用于指定被索引的列。 PAD_INDEX:用于指定索引中间级中每个页(节点)上保持开放的空间。 FILLFACTOR = fillfactor:用于指定在创建索引时,每个索引页的数据占索引页大小的百分比,fillfactor的值为1到100。 IGNORE_DUP_KEY:用于控制当往包含于一个唯一聚集索引中的列中插入重复数据时SQL Server所作的反应。 DROP_EXISTING:用于指定应删除并重新创建已命名的先前存在的聚集索引或者非聚集索引。 STATISTICS_NORECOMPUTE:用于指定过期的索引统计不会自动重新计算。 SORT_IN_TEMPDB:用于指定创建索引时的中间排序结果将存储在 tempdb 数据库中。 ON filegroup:用于指定存放索引的文件组。 例子:为表employees创建了一个唯一聚集索引,其程序清单如下: CREATE UNIQUE CLUSTERED INDEX number_ind with 例子: 为表employees创建了一个复合索引,其程序清单如下: create index employees_cpl_ind on employees(name,age) with
1.根据给定的工作负荷,通过使用查询优化器分析该工作负荷中的查询,为数据库推荐最佳索引组合。 2.分析所建议的更改将会产生的影响,包括索引的使用,查询在表之间的分布,以及查询在工作负荷中的性能。 3.推荐为执行一个小型的问题查询集而对数据库进行优化的方法。 4.通过设定高级选项如磁盘空间约束、最大查询语句数和每个索引最多对应字段数等,允许定制推荐方式 |

加载中…