我是SQL Server 2005的初学者,我从在线教程学习它,这是我的一些问题:
1:从XYZ选择*和从XYZ选择全部*之间有什么区别。
2:聚集索引的目的是通过物理排序表来使搜索更容易[据我所知:-)]。假设在表上有主列而不是在表上创建聚簇索引?因为我们已经有一个已排序的列。
3:为什么我们可以在桌面上创建1个聚簇索引+ 249个非聚集索引= 250索引?我理解1聚簇索引的要求。但为什么249?为什么不超过249?
答案 0 :(得分:0)
与SELECT ALL
SELECT DISTINCT
意见各不相同。出于性能原因,理想情况下,聚簇索引应该小,稳定,独特且单调递增。主键也应该是稳定且独特的,因此有明显的适合性。但是,聚簇索引非常适合范围查询。如果PK是非聚集的,那么通过PK查找单个记录可以很好地执行,因此一些作者建议不要“浪费”PK上的聚集索引。
在SQL Server 2008中,您最多可以在一个表上创建999个NCI。我无法想象曾经这样做过但我认为限制是因为“过滤后的索引”可能存在,这可能是一个可行的案例。索引为数据修改操作增加了成本,因为更改需要在多个位置传播,因此我认为它只会在很大程度上只读(例如报告)数据库,甚至可以达到非聚集非过滤索引的两位数。
答案 1 :(得分:0)
3:
每次在表中插入/删除记录时,必须更新所有索引。如果索引太多,则需要很长时间。
如果您的表有超过5-6个索引,我认为您需要花时间检查自己。