麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL2005重新生成索引的的存儲過程 sp_rebuild_index

2024-08-31 01:03:48
字體:
供稿:網(wǎng)友
本文分享了一個筆者自己整理的存儲過程,幫助技術人員快速的重新生成數(shù)據(jù)庫的索引,以減輕重復的工作,有需要的朋友,可以參考一下。
 

公司運營著的網(wǎng)站,流量很大,網(wǎng)站是交互式的,經(jīng)常在過了三四個月的時候索引生成的碎片就很多,由于很大一部分頁面沒有生成靜態(tài),這就導致網(wǎng)站在打開的速度上會變慢。

以前都是手工右擊索引重新生成,但是索引太多,操作起來費時費力,索引在網(wǎng)上找了個存儲過程,自己整理了一下,執(zhí)行的時候只需要選擇相應的數(shù)據(jù)庫,運行exec sp_rebuild_index即可,如下。

USE [master]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE proc [dbo].[sp_rebuild_index] (  @Rebuild_Fragmentation_Percent smallint = 5  -- 當邏輯碎片百分比 > 5% 重新生成索引)asbegin  /* 調(diào)用方法:  1.針對當前實例所有數(shù)據(jù)庫:  exec sys.sp_MSforeachdb 'use ?;exec sp_rebuild_index'  2.針對當前數(shù)據(jù)庫:      exec sp_rebuild_index  */    --對系統(tǒng)數(shù)據(jù)庫不作重新組織索引和重新生成索引  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'對數(shù)據(jù)庫 '+quotename(db_name())+N' 進行索引優(yōu)化'+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

 

你可能在執(zhí)行過程中會遇到如下錯誤

消息 195,級別 15,狀態(tài) 10,過程 sp_rebuild_index,第 24 行
'object_schema_name' 不是可以識別的 內(nèi)置函數(shù)名稱。

不要擔心,那是由于沒有安裝SQL Server SP4補丁造成的,安裝一下補丁即可。



注:相關教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天天鲁在线视频免费观看 | 成人黄视频在线观看 | 国产精品视频一区二区三区四区国 | 成人毛片免费 | 亚洲码无人客一区二区三区 | 色97在线 | 国产精品免费小视频 | 桥本有菜免费av一区二区三区 | 成年人在线视频免费 | 精品一区久久久 | 中国hd高清xxxxvideo | 红杏网站永久免费视频入口 | chinese乱子伦xxxx国语对白 | 国产一区二区久久精品 | 99精品无人区乱码在线观看 | 亚洲午夜久久久久 | 色啪综合| 午夜视频啊啊啊 | 午夜视频中文字幕 | 久久久av亚洲男天堂 | 日韩毛片网站 | 91久久精品一区二区 | 中文字幕 亚洲一区 | 黑人一级片视频 | 亚洲综合网站 | 超污视频在线看 | 免费观看黄色一级视频 | 国产一级毛片不卡 | 91成人午夜性a一级毛片 | 在线a亚洲视频播放在线观看 | 中文亚洲视频 | 精品国产一区二区三区四区在线 | 一级片久久免费 | 成人精品视频在线 | 久久国产精品区 | 国产99久久 | 国产一区亚洲 | 精品一区二区在线观看视频 | 国产91久久久久久 | 久久亚洲精品视频 | 黄色免费不卡视频 |