Sql Server 2005新手查询

时间:2010-11-22 10:51:56

标签: sql-server sql-server-2005 clustered-index

我是SQL Server 2005的初学者,我从在线教程学习它,这是我的一些问题:

1:从XYZ选择*和从XYZ选择全部*之间有什么区别。

2:聚集索引的目的是通过物理排序表来使搜索更容易[据我所知:-)]。假设在表上有主列而不是在表上创建聚簇索引?因为我们已经有一个已排序的列。

3:为什么我们可以在桌面上创建1个聚簇索引+ 249个非聚集索引= 250索引?我理解1聚簇索引的要求。但为什么249?为什么不超过249?

2 个答案:

答案 0 :(得分:0)

  1. SELECT ALL

  2. 相比,默认不存在差异SELECT DISTINCT
  3. 意见各不相同。出于性能原因,理想情况下,聚簇索引应该小,稳定,独特且单调递增。主键也应该是稳定且独特的,因此有明显的适合性。但是,聚簇索引非常适合范围查询。如果PK是非聚集的,那么通过PK查找单个记录可以很好地执行,因此一些作者建议不要“浪费”PK上的聚集索引。

  4. 在SQL Server 2008中,您最多可以在一个表上创建999个NCI。我无法想象曾经这样做过但我认为限制是因为“过滤后的索引”可能存在,这可能是一个可行的案例。索引为数据修改操作增加了成本,因为更改需要在多个位置传播,因此我认为它只会在很大程度上只读(例如报告)数据库,甚至可以达到非聚集非过滤索引的两位数。

答案 1 :(得分:0)

3:

每次在表中插入/删除记录时,必须更新所有索引。如果索引太多,则需要很长时间。

如果您的表有超过5-6个索引,我认为您需要花时间检查自己。