关于索引的问题请大家来指教一下。

tangqijun199 2004-11-21 11:56:18
经过一段时间的学习感觉自己在sql server中写sql语句已经小有能力了,可是有时候查询由于数据太多老是比较的慢。我知道索引就是对某字段排序提高查询效率,可是本人一直没有时间去学习,所以请大家在这里指导一下。

1 如果有一个表怎么建立索引。 表名---table1 ,字段---column1,column2是否只可以在一列上面建立索引还是可以多个字段建立索引?是不是只能在主键上面建?sql语句怎么写?

2 建立索引是不是在建立的时候就排好序了?所以在查询的时候就更快?建立索引有没有什么不好的效果?

3 怎么查询我在哪个表建立的索引?

4 大家对索引的一些认识和看法都可以发表上来。谢谢。
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxzm1001 2004-11-22
  • 打赏
  • 举报
回复
create index index_name on table1(column1)
create index index_name on table1(column1,column2)
create clustered index index_name on tabel1(column1)
.................
zjcxc 元老 2004-11-22
  • 打赏
  • 举报
回复
1 如果有一个表怎么建立索引。 表名---table1 ,字段---column1,column2是否只可以在一列上面建立索引还是可以多个字段建立索引?是不是只能在主键上面建?sql语句怎么写?



可以在一个字段是建立索引,也可以把索引建立在多个字段上
可以在主键上建立索引,也可以在非主键字段上建立索引
具体如何创建视乎你的处理要求,一般在条件字段和排序字段上建立索引,如果你的条件经常用到几个字段,则在这几个字段上建立复合索引,否则应该在需要的字段建立单独索引
创建索引的语句:
create index 索引名 on 表名(字段名) --字段名可以是用,分隔的字段列表
具体的语法参考SQL联机帮助




2 建立索引是不是在建立的时候就排好序了?所以在查询的时候就更快?建立索引有没有什么不好的效果?

索引只是指明了一种数据顺序(聚集索引除外),并没有改变表中数据的存储顺序(否则多个索引如何保存记录?)
索引确实是利用排序来提高检索效率的,因此索引对于使用like这类的模糊查询无效,因为它们无法利用排序确定查询范围
因为SQL在进行数据新增/修改/删除的时候会维护索引,因此索引如果建得不合理,会造成数据处理上的负担
同时,不合理和过多的索引,也会导致SQL在对语句进行算法分析的时候,花费更多的时间,因为SQL会根据你的索引来决定算法



3 怎么查询我在哪个表建立的索引?

--用sql语句
sp_helpindex 表名
tangqijun199 2004-11-22
  • 打赏
  • 举报
回复
不是的吧?这么久了还没有人?
xuhongying8848 2004-11-21
  • 打赏
  • 举报
回复
学习中,周末人比较少吧
tangqijun199 2004-11-21
  • 打赏
  • 举报
回复
怎么没有人啊?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧