求移动index脚本
要把现有1个数据库的所有非聚集index, 排名前20 大小的,挪到文件组 FG2 中, 其余的挪到文件组FG3 中, 如何写具体脚本遍历一下所有表index并生成啊? 比如其中一个比较大的:
CREATE NONCLUSTERED INDEX [index_249]
ON [Usefr] (
[userId] ASC,
[friend_thUserId] ASC
)
INCLUDE ( [id],
)
WITH (DROP_EXISTING = ON)
ON fg2;
GO
也可以生成不同的名字,比如先生成index_2491 (添加了个1) 在FG2,再删除index_249。
------解决方案--------------------这个好像很麻烦呢。
建议你先把整个数据库的脚本导出来,然后把索引的单独提取出来。
然后,加上 on fg2,再创建
------解决方案--------------------只有20个表,没必要搞那么复杂,手动操作也就10来分钟就处理好脚本了,执行时间就另算
------解决方案--------------------找出1个数据库的所有非聚集index排名前20大小的SQL语句.
select top 20 b.name 'table_name',
c.name 'index_name'
from sys.sysindexes a
inner join sys.tables b on a.id=b.object_id
inner join sys.indexes c on a.id=c.object_id and a.indid=c.index_id
where a.indid>1
order by a.dpages desc