博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer中循环给多张表建立聚簇索引
阅读量:6406 次
发布时间:2019-06-23

本文共 776 字,大约阅读时间需要 2 分钟。

缘由

因为在某个复(bian)杂(tai)需求中用到了170+张表进行查询,而且表中的数据过多,查起来缓慢。只能给这些表添加索引。 但是,连表名也是无法确定的(无力吐槽)。

解决方法

使用游标遍历查询出来的符合条件的表名,通过拼接sql语句进行建立索引。

代码如下:

--声明变量 DECLARE      @tableName AS VARCHAR(50) = '', @SqlStr AS VARCHAR(MAX) = ''; --声明游标 DECLARE C_TableName CURSOR FAST_FORWARD FOR ( select name from sysobjects where xtype='u' AND name LIKE 'EAR%2019' --读取库中的所有表名 ); OPEN C_TableName; --取第一条记录 FETCH NEXT FROM C_TableName INTO @tableName; WHILE @@FETCH_STATUS = 0 BEGIN --组装sql语句 SET @SqlStr = 'CREATE INDEX ' + @tableName + '_called_duration' + ' ON ' + @tableName + '(called,duration);'; EXEC (@SqlStr); PRINT @SqlStr; --取下一条记录 FETCH NEXT FROM C_TableName INTO @tableName; END -- 关闭游标 CLOSE C_TableName; -- 释放游标 DEALLOCATE C_TableName;

转载于:https://www.cnblogs.com/GuDuYing/p/10260267.html

你可能感兴趣的文章
Android 用MediaCodec实现视频硬解码
查看>>
FileWriter与BufferedWriter的适用场景
查看>>
数论初步——扩展欧几里得算法
查看>>
为什么React事件处理函数必须使用Function.bind()绑定this?
查看>>
Python 计算相似度
查看>>
C# 生成word 文档 代码 外加 IIS报错解决方案
查看>>
K近邻分类法
查看>>
软件开发人员(程序员)的出路
查看>>
How can For each...
查看>>
HDU 5573 Binary Tree(找规律)
查看>>
Oracle密码过期,取消密码180天限制(转)
查看>>
问题记录4:命名冲突
查看>>
Python——2list和tuple类型
查看>>
棋盘问题
查看>>
Java异常的深入研究与分析
查看>>
SetWindowsHookEx 失败的一个隐晦的错误原因(思路为主,解决为辅)
查看>>
认识自己
查看>>
第二阶段冲刺7
查看>>
excel-删除
查看>>
Android开发环境的搭建
查看>>