惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
美团技术团队
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
有赞技术团队
有赞技术团队
GbyAI
GbyAI
宝玉的分享
宝玉的分享
腾讯CDC
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
月光博客
月光博客
MyScale Blog
MyScale Blog
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog

博客园 - rmhy

IIS10设置上传大小限制的方法实现 SQL Server中 特殊符号查询处理 MAS 激活命令 SSMS18 登陆界面清除不需要的登录账户 yum更换阿里源 docker 部署 xxl-job 详细步骤 globalthis is not defined 钉钉H5应用报错(手机端) docker onlyoffice robocopy局域网拷贝 oracle 维护小记 oracle 导出空表 djange 2.0 连接 mssql 2008 sql 2008数据库日志清理(转) JS判断文本框是否数字包括小数 sql joins 网站无法播放flv格式 eml文件打开方式 更改域安全策略-密码必须符合复杂性要求 span 换行
MSSQL 维护小记(清理进程、重建索引)
rmhy · 2023-09-20 · via 博客园 - rmhy

------------------------------清理进程-----------------------------------

declare @deleteSleepSession nvarchar(100) --申明一个变量
declare tablelist cursor local --申明一个本地游标
for
select 'kill '+rtrim(spid)
from master.dbo.sysprocesses --数据库系统进程表
where status='sleeping' --状态为休眠状态
and spid>=50 --因spid<=50的为SQL Server本身的系统进程
and last_batch< DATEADD(MINUTE,-30,GETDATE()) --最后批处理时间大于当前时间30分钟
and program_name = 'XXXXXXXXXX'  --名称
--and login_time< DATEADD(MINUTE,-30,GETDATE()) --提交时间大于当前时间30分钟
open tablelist
fetch tablelist into @deleteSleepSession --执行查询,返回结果集插入至游标中
while @@fetch_status=0
-- 0 FETCH 语句成功
-- -1 FETCH 语句失败或此行不在结果集中
-- -2 被提取的行不存在
begin
exec(@deleteSleepSession) --执行变量
fetch tablelist into @deleteSleepSession
end
close tablelist --关闭游标
deallocate tablelist --删除游标引用

---------------------------------重建索引---------------------------------------------

select *, 'alter index all on dbo.['+TableName+'] rebuild;' as forsql

from (
SELECT OBJECT_NAME(ips.object_id) AS TableName,
ips.index_id,
name AS IndexName,
avg_fragmentation_in_percent,
DB_NAME(ips.database_id) AS DatabaseName
FROM sys.dm_db_index_physical_stats(DB_ID(DB_NAME()), NULL, NULL, NULL, NULL) AS ips
INNER JOIN sys.indexes AS si
ON si.object_id = ips.object_id
AND si.index_id = ips.index_id
WHERE ips.avg_fragmentation_in_percent > 0
AND si.index_id <> 0
)t