SQL 2005 색인 을 다시 만 드 는 저장 과정 sprebuild_index<br>오리지널
예전 에는 수 동 으로 오른쪽 클릭 하여 색인 을 다시 만 들 었 지만 색인 이 너무 많아 서 조작 하 는 데 시간 이 걸 렸 습 니 다.색인 은 인터넷 에서 저장 과정 을 찾 았 습 니 다.스스로 정 리 했 습 니 다.실행 할 때 해당 하 는 데이터 베 이 스 를 선택 하고 exec sp 를 실행 해 야 합 니 다.rebuild_index 면 됩 니 다.아래 와 같 습 니 다.
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[sp_rebuild_index]
(
@Rebuild_Fragmentation_Percent smallint = 5 -- > 5%
)
as
begin
/* :
1. : exec sys.sp_MSforeachdb 'use ?;exec sp_rebuild_index'
2. : exec sp_rebuild_index
*/
--
if (db_name() in ('master','model','msdb','tempdb')) return;
-- ( ) <= 5% ,
if not exists(select 1 from sys.dm_db_index_physical_stats(db_id(),null,null,null,null) a where a.index_id>0 and a.avg_fragmentation_in_percent > @Rebuild_Fragmentation_Percent) return
print replicate('-',60)+char(13)+char(10)+replicate(' ',14)+N' '+quotename(db_name())+N' '+replicate(' ',20)+char(13)+char(10)
declare @sql nvarchar(2000),@str nvarchar(2000)
declare cur_x cursor for
select 'alter index '+quotename(a.name)+' on '+quotename(object_schema_name(a.object_id))+'.'+quotename(object_name(a.object_id))+' rebuild;' as [sql]
,N' :' +quotename(object_schema_name(a.object_id))+'.'+quotename(object_name(a.object_id))+'.'+quotename(a.name) as [str]
from sys.indexes a
inner join sys.dm_db_index_physical_stats(db_id(),null,null,null,null) b on b.object_id=a.object_id
and b.index_id=a.index_id
where a.index_id>0
and b.avg_fragmentation_in_percent > @Rebuild_Fragmentation_Percent
order by object_name(a.object_id),a.index_id
open cur_x
fetch next from cur_x into @sql,@str
while (@@fetch_status = 0)
begin
print @sql
exec(@sql)
print @str
fetch next from cur_x into @sql,@str
end
close cur_x
deallocate cur_x
end
당신 은 실행 과정 에서 다음 과 같은 오 류 를 만 날 수 있 습 니 다.메시지 195,레벨 15,상태 10,과정 sprebuild_index,24 번 째 줄
'object_schema_name'은 식별 할 수 있 는 내장 함수 이름 이 아 닙 니 다.
걱정 하지 마 세 요.SQL Server SP4 패 치 를 설치 하지 않 았 기 때문에 패 치 를 설치 하면 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQL 2005 메모 공용 표 표현 식 학습(CTE)공용 표 표현 식(CTE)은 하나의 SELECT,INSERT,UPDATE,DELETE 또는 CREATE VIEW 문장의 실행 범위 내 에서 정 의 된 임시 결과 집합 이 라 고 볼 수 있다.CTE 는 파생 표 와 유...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.