怎么创建索引和使用索引呢
这样创建吗?
CREATE INDEX CIDS ON New(CID)我创建了索引
然后计算一下时间declare @date1 datetime
select @date1=getdate()
select * from New where CID=3
declare @date2 datetime
--测试语句
select @date2=getdate()
select datediff(millisecond, @date1, @date2) 发现好象没差多少,反而创建索引用的时间有时还更多!网上看了好多资料
还是一头雾水!

解决方案 »

  1.   

    sql中有可视化创建索引的功能,当数据量比较小的情况下,创建索引不创建都差不多,但是如果数据量大的话,索引的好处就突出了。
      

  2.   

    我觉得
    你想象一下
    索引就是将数据库表中的数据集先排序好
    这样搜起来就会更快些但不合理的排序找起来就更慢了你建的索引: 1.你把学习的书 和A++小说分类放在书柜上-----------找小说或找学习的比较方便(快)
    你建的索引: 2.你从贵到便宜将学习的书和A++小说放在书柜上-----找最贵的和最便宜的比较方便(快)
    你建的索引: 3.你从厚到薄将学习的书和A++小说放在书柜上-------找最厚的和最薄的比较方便(快)你建立索引1后 但现在又要去找最贵的和最便宜的 那就不怎么方便 一本一本看
      

  3.   

    例如我有个版快表Web,Web表有很多分类,有asp.net,C#,sql,
    然后表外键是TID和记录这些分类表(Web_T)关联
    那我该不该用索引呢?
    假设有很多数据
    该怎么用呢
      

  4.   

    在代码中当传过来一个参数
    用Request.QueryString["TID"]接收
    然后用存储过程分页,分出TID,例如TID=1就是asp.net,2就是C#
    这样有必要建索引不?该怎么建呢?
      

  5.   

    是不是例如我对TID建了个索引
    然后sql就会对TID自动排序?例如,TID=1的分在一块,2的分在一块
    如果查找的是2就直接查找2的那一块,不用在重头开始找起呢?
      

  6.   

    例如
    当我在写代码的时候,要建立一个Web列表页,
    列表页如果接收过来Request.QueryString["TID"]就用存储过程分页,
    分页写到的where语句是where TID='"+Request.QueryString["TID"]+"' and Passed=1
    要这样写
    这样有必要建立索引不?
    该怎么建立呢?
      

  7.   

    感觉好象建不了索引
    因为ID设置为主键且自增长了,这样就不能在建clustered索引了
    建立unique索引,可是CID有好多条,好多重复也建不了unique索引了
    - -!
      

  8.   

    现在想知道怎么创建普通索引呢?
    网上找的是
    CREATE INDEX CIDS ON New(CID)
    这样创建后就可以了吗?
    怎么用它呢?
      

  9.   

    汗,索引是针对查询来说的,就像你书中的目录一样,如果你要找哪一课,它后面就有在哪页,加快你查找的速度
    而不用整本书都翻完,类似你不用把表中的数据都找完,才找到你要的数据建立好后,如果查询语句SELECT CID FROM CIDS 这样的话,它会选择索引扫描,不用把整个表的数据都去扫
    不过你也可以强制指定索引,所以语句就会按你的索引去找,(除非你确定这样能提高速度)
    数据库引擎会自动去选择哪个索引找出最优的执行计划,但不总是这样,也会产生不好的执行计划,太多了,一下说不清楚
      

  10.   

    不是任何情况下,索引都快的,少数特殊情况下,譬如数据表中只有几百条数据,或者你的查询语句比较特殊,
    譬如 select top 2 colum1,colum2 from table,这个情况下,直接从表中按物理顺序读头两条(或最后两条数据).此时,就算建了索引,用处也不大,如果利用上了索引,速度不快反慢数据库服务器还是有一定的智能的,它会比较几种可用的方案,然后估算出何种方案速度最快(估算不一定都准确,往往与实际会有出入)
    然后服务器就会采用估算最佳方案去执行还是用字典来打比方:
    字典中有好几万个汉字,如果让你快速查找到"优"字,你可能会有"偏旁"查字法,先找单人旁,然后再找到"优"字所在的页码,再翻到这个页码,这个速度肯定要你比从字典第一页逐页查找快.但是,如果字典中一共只有不到10个汉字,一页就够了,其中有一个"优"字,再让你找到这个优字,你还会用部首查字法吗?我想你会直接到唯一的一页中找到它.在这种情况下,数据库一般会放弃利用索引,而是直接扫描表.
    如果数据库不恰当地非要去用索引,那就会出现你所说的用上索引速度反而不快了.