09 2012 档案

摘要:一般来说,建立索引要看数据使用的场景,换句话来说哪些访问数据的SQL语句是常用的,而这些语句是否因为缺少索引(也有可能是索引过多)变的效率低下。但绝不是所有的SQL语句都要建立索引,如果所有的SQL语句都建立索引,那么可能导致建立过多的索引。 阅读全文
posted @ 2012-09-20 21:35 DotNet菜园 阅读(8152) 评论(6) 推荐(8)
摘要:索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以。但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好。索引建少了,用WHERE子句找数据效率低,不利于查找数据。索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER除了要更新数据表本身,还要连带地立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间。因此要建得恰到好处,这就需要经验了。 阅读全文
posted @ 2012-09-19 20:56 DotNet菜园 阅读(51198) 评论(10) 推荐(22)
摘要:通过实例,来查看不同的索引结构,如聚集索引、非聚集索引、组合索引等来查看相同的SQL语句查询的不同性能。在建立覆盖查询时要尽量限制索引键值的大小,保持Row-to-key的大小比例差异越大越好。否则扫描覆盖索引与扫描数据表所花的I/O操作差不多,这样就失去了建立覆盖索引的意义。 阅读全文
posted @ 2012-09-05 21:17 DotNet菜园 阅读(5013) 评论(1) 推荐(4)
摘要:覆盖索引又可以称为索引覆盖,是非聚集组合索引的一种形式,它包括在查询里的Select、Join和Where子句用到的所有列(即建立索引的字段正好是覆盖查询语句[select子句]与查询条件[Where子句]中所涉及的字段,也即,索引包含了查询正在查找的所有数据)。 阅读全文
posted @ 2012-09-04 22:38 DotNet菜园 阅读(19650) 评论(11) 推荐(2)