SQLServer 给表关键字段批量添加索引生成脚本语句

/**************************************************************************************************
 MSTC Data Transfer Supplement

 Source Server         : MS
 Source Server Type    : SQL Server
 Source Server Version : 
 Source Host           : 10.10.10.10:1433
 Source Schema         : MS
 Target Server Version : 15.0.2000.5 (RTM Express Edition (64-bit))

 Date: 2025-01-06
 User: 
 -- 示例:
-- 创建非聚集索引:填充因子为60%
-- CREATE NONCLUSTERED INDEX [IDX_LOG_OHT_CREATE_TIME] ON [dbo].[LOG_OHT] ( [CREATE_TIME] ) WITH FILLFACTOR= 60;

****************************************************************************************************/
 
 SELECT ' CREATE NONCLUSTERED INDEX [IDX_' + a.TABLE_NAME + '_' + a.COLUMN_NAME + '] ON [' + a.TABLE_SCHEMA +'].[' + a.TABLE_NAME + '] ( [' + a.COLUMN_NAME + '] ) WITH (FILLFACTOR= 60)  GO'
     AS idxsql, 
 a.TABLE_NAME, a.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS a,INFORMATION_SCHEMA.TABLES b 

-- 修改实例名称:
WHERE a.TABLE_CATALOG = 'MS' 


 AND b.TABLE_TYPE='BASE TABLE'
 AND a.TABLE_NAME = b.TABLE_NAME
 AND a.TABLE_CATALOG = b.TABLE_CATALOG
 AND a.TABLE_SCHEMA = b.TABLE_SCHEMA
 AND  (
 a.column_name LIKE  '%ID'
 OR 
 a.column_name LIKE  '%NAME'
 OR
 a.column_name LIKE  '%STATUS'
 OR
 a.column_name LIKE  '%TIME'
 OR
 a.column_name LIKE  '%TYPE'
 OR 
 a.column_name LIKE  '%CODE'
 )
 ORDER BY a.TABLE_NAME, a.COLUMN_NAME
 ;

 
-- SQL Server 企业版提供了在线索引操作的功能,允许在索引创建或重建时,表仍然可供查询和修改
-- 注意: [SQL Server]联机索引操作只能在 SQL Server Enterprise Edition 中执行!!!
-- CREATE INDEX idx_column_name ON table_name (column_name) WITH (ONLINE = ON); 
-- 通过设置最大并发度(MAXDOP)选项,可以控制索引创建过程中的CPU使用率
CREATE INDEX idx_column_name ON table_name (column_name) WITH (MAXDOP = 2,ONLINE = ON);
-- 分批次添加索引:
-- 对于非常大的表,可以考虑将数据分批处理,每次处理一部分数据并为其添加索引。这通常涉及到更复杂的脚本和可能的临时表使用

-- 添加索引后,建议更新相关表的统计信息,以确保查询优化器能够准确利用新索引。
-- UPDATE STATISTICS table_name;
UPDATE STATISTICS [dbo].[LOG_OHT];

SELECT
    'UPDATE STATISTICS [' + b.TABLE_SCHEMA + '].[' + b.TABLE_NAME + '] ;'  AS STATISTICS_SQL
FROM
    INFORMATION_SCHEMA.TABLES b 
WHERE
    TABLE_CATALOG = 'MSTC_Develop' 
    AND b.TABLE_TYPE= 'BASE TABLE'
    ;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值