Sqlserver——日常维护——定期重建索引

大致的重建范围是 逻辑密度碎片>30以及页码总数>8以上的数据库索引碎片

直接上代码(附带生成执行完之后生成日志记录表)

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO

Create PROCEDURE [dbo].[p_index_rebuild_test]
AS



DECLARE @DatabaseName NVARCHAR(255)--数据库名
DECLARE @SchemaName NVARCHAR(255)--架构名
DECLARE @TableName NVARCHAR(255)--表名
DECLARE @IndexName NVARCHAR(255)--索引名
DECLARE @IndexType NVARCHAR(255)--索引类型
DECLARE @IndexColums NVARCHAR(MAX)--索引列清单
DECLARE @DuringTime INT--重建时间
DECLARE @Before_avg_fragmentation_in_percent DECIMAL(19,8)--重建前的逻辑扫描碎片
DECLARE @After_avg_fragmentation_in_percent DECIMAL(19,8)--重建后的逻辑扫描碎片


SET XACT_ABORT ON 
SET NOCOUNT ON 

-----------定期重建索引执行计划--------

BEGIN TRAN

----------1、创建记录表,写入本次索引重构的日志
--日志表名
DECLARE @LogTableName NVARCHAR(255)='ReBuildIndexLog_'+CONVERT(VARCHAR(100),GETDATE(),112)

DECLARE @sql NVARCHAR(MAX)=''



IF EXISTS(SELECT * FROM sys.objects WHERE object_id=OB
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值