当前位置: 代码迷 >> Sql Server >> 请教这种情况是建聚集索引,还是建两个主健,还是什么都不建
  详细解决方案

请教这种情况是建聚集索引,还是建两个主健,还是什么都不建

热度:50   发布时间:2016-04-27 20:41:11.0
请问这种情况是建聚集索引,还是建两个主健,还是什么都不建?
我有一张表,三列,数据类型分别是:int,   datetime,   real。
int和datetime这两列会有重复(重复非常多),而他们两个组合在一起不会重复。
这张表会有非常高的频率的插入操作。同时,也有少量的查询操作,查询条件均围绕int和datetime这两个字段。
我的要求是优先考虑插入速度。
现在我想在int和datetime这两列上创建聚集索引或是主健,不知道谁更满足我的要求?
个人认为主健会影响插入速度,所以偏向于聚集索引,可是我这张表是无限制增大的,不知道适不适合创建聚焦索引?也不知道聚焦索引对插入的影响有多大?

另外,我的插入操作也是有规律的,类型于这样的组及次序:
{1,   '2007-6-6 '},   {2,   '2007-6-6 '},   {3,   '2007-6-6 '},   {4,   '2007-6-6 '},  
{1,   '2007-6-7 '},   {2,   '2007-6-7 '},   {3,   '2007-6-7 '},   {4,   '2007-6-7 '},  
datetime一直增大,int也增大,但到一定时候又折回(上面就是到4时折回)。

------解决方案--------------------
int,datetime建立主键,聚集索引

------解决方案--------------------
索引对数据库插入的影响也不小的。当你插入,修改和删除数据的时候,系统会更改索引,这就引起索引的位置变动,如果是簇索引,还要修改记录的位置。
所以,索引的建立要在查询和数据更新之间找到平衡。
要求是优先考虑插入速度的话.还是不建立索引

------解决方案--------------------
即便是要建立索引那么要考虑到数据量,那么填充因子不要设定为百分比,而要建立物理下占多少(说不上来这个词,也就是说直接分配填充因子在物理上占多少MB)如数据量很大的情况建议至少500MB
------解决方案--------------------
1、int和datetime这两列会有重复(重复非常多),而他们两个组合在一起不会重复。
int、datetime建聚集(或唯一)索引
2、这张表会有非常高的频率的插入操作。
不推荐建索引
3、同时,也有少量的查询操作,查询条件均围绕int和datetime这两个字段。
int、datetime推荐建索引

如果这样不推荐建索引,很容易产生索引碎片,对执行计划造成影响
------解决方案--------------------
如果增加了主键
MSSQL Server2000默认的情况下,在创建主键的同时也为该主键创建了聚集索引,
对插入速度要求非常高!
你还需要把该聚集索引给暂时删除掉

  相关解决方案