周期性地重复建立和删除索引,会有什么问题吗?
环境:MS SQL Server 2008
问题:我有两个库,在同一个服务器上。库A每天凌晨要按照时间戳删除一部分的数据,然后从另一个oracle库里抽取新数据插入,同时库A会通过复杂的联表查询生成一系列的视图。
新的数据完全插入到库A中的表后,又需要把库A的视图,完全地抽取到库B生成实体的表。这中间其实是一个对库A的查询过程和对库B的数据插入。
当新的数据插入到库B之后,会马上对库B进行一系列的密集复杂的查询。
也就是说,在库A和B上会周期性地依次进行删、增和查询的操作。这些操作都是通过job定时完成。
现今的问题是,由于数据量太多,两个数据库上的表又都没有索引,导致查询时间过长,已经渐渐不能接受了。因为我了解到,索引会加快查询速度,而降低数据插入、删除的速度,而两个库的增删查操作都是周期性且依次进行的,进而产生一个想法是,在查询数据时,在两个库的表上建立索引,当查询操作结束后,再删除索引,以准备下次的数据删、增操作。将这个建和删索引的操作也集成到job中,每天凌晨定时依次地执行。
想在论坛上问一下,这样做是否有可行性,是否会对我的项目产生实质性的帮助,以及可能会有什么副作用?