/**************************************************************************************************
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'
;