亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

MSSQL自動重建出現碎片的索引的方法分享

2024-08-31 01:02:08
字體:
來源:轉載
供稿:網友

1.索引碎片的產生?

由于在表里大量的插入、修改、刪除操作而使索引頁分裂。如果索引有了高的碎片,有兩種情況,一種情況是掃描索引需要花費很多的時間,另一種情況是在查詢的時候索引根本不使用索引,都會導致性能降低。

2.碎片類型分為:

2.1 內部破碎

由于索引頁里的數據插入或修改操作而發生,以數據作為稀疏矩陣的形式的分布而結束,這將導致數據頁的增加,從而增加查詢時間。

2.2外部破碎

由于索引/數據頁的數據插入或修改而發生,以頁碼分離和在文件系統里不連貫的新的索引頁的分配而結束,數據庫服務器不能利用預讀操作的優點,因為:下一個相關聯的數據頁不臨近,而且這些相關連的下面的頁碼可能在數據文件的任何地方。

自動重建發生碎片的索引

在數據中新建碎片整理存儲過程

復制代碼 代碼如下:


-- ================================================
-- TEMPLATE GENERATED FROM TEMPLATE EXPLORER USING:
-- CREATE PROCEDURE (NEW MENU).SQL
--
-- USE THE SPECIFY VALUES FOR TEMPLATE PARAMETERS
-- COMMAND (CTRL-SHIFT-M) TO FILL IN THE PARAMETER
-- VALUES BELOW.
--
-- THIS BLOCK OF COMMENTS WILL NOT BE INCLUDED IN
-- THE DEFINITION OF THE PROCEDURE.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- AUTHOR:  <AUTHOR,,WUXIANGQIAN>
-- CREATE DATE: <CREATE DATE,2014-05-16>
-- DESCRIPTION: <DESCRIPTION,重建出現碎片的索引>
-- =============================================
ALTER PROCEDURE USP_IMS_DEFRAGMENT_INDEXES
AS
--聲明變量
SET NOCOUNT ON
DECLARE @TABLENAME VARCHAR (128) --表名稱(已發生索引碎片)
DECLARE @EXECSTR VARCHAR (255) --執行重建索引的語句
DECLARE @INDEXNAME CHAR(255) --索引名稱
DECLARE @DBNAME SYSNAME --數據庫名稱
DECLARE @DBNAMECHAR VARCHAR(20) --數據庫名稱
DECLARE @TABLEIDCHAR VARCHAR(255) --表名稱(用于遍歷索引碎片)

--檢查是否在用戶數據庫里運行
SELECT @DBNAME = DB_NAME()
IF @DBNAME IN ('master', 'msdb', 'model', 'tempdb')
BEGIN
PRINT 'THIS PROCEDURE SHOULD NOT BE RUN IN SYSTEM DATABASES.'
RETURN
END ELSE
BEGIN
SET @DBNAMECHAR = 'DBNAME'
END

--第1階段:檢測碎片
--聲明游標
DECLARE TABLES CURSOR FOR
SELECT CONVERT(VARCHAR,SO.ID)
FROM SYSOBJECTS SO
JOIN SYSINDEXES SI
ON SO.ID = SI.ID
WHERE SO.TYPE ='U'
AND SI.INDID < 2
AND SI.ROWS > 0

-- 創建一個臨時表來存儲碎片信息
CREATE TABLE #FRAGLIST (
TABLENAME CHAR (255),
INDEXNAME CHAR (255))

--打開游標
OPEN TABLES

-- 對數據庫的所有表循環執行DBCC SHOWCONTIG命令
FETCH NEXT
FROM TABLES
INTO @TABLEIDCHAR

WHILE @@FETCH_STATUS = 0
BEGIN
--對表的所有索引進行統計
INSERT INTO #FRAGLIST

EXEC ('SELECT OBJECT_NAME(DT.OBJECT_ID) AS TABLENAME,SI.NAME AS INDEXNAME FROM '+
' (SELECT OBJECT_ID,INDEX_ID,AVG_FRAGMENTATION_IN_PERCENT,AVG_PAGE_SPACE_USED_IN_PERCENT '+
' FROM SYS.DM_DB_INDEX_PHYSICAL_STATS(DB_ID('''+@DBNAMECHAR+'''),object_id('''+@TABLEIDCHAR+''')'+
',NULL,NULL,''DETAILED'') WHERE INDEX_ID<>0)AS DT INNER JOIN SYS.INDEXES SI'+
' ON SI.OBJECT_ID=DT.OBJECT_ID AND SI.INDEX_ID=DT.INDEX_ID AND '+
' DT.AVG_FRAGMENTATION_IN_PERCENT>10'+
' AND DT.AVG_PAGE_SPACE_USED_IN_PERCENT<75 ORDER BY DT.AVG_FRAGMENTATION_IN_PERCENT DESC')
FETCH NEXT
FROM TABLES
INTO @TABLEIDCHAR
END

-- 關閉釋放游標
CLOSE TABLES
DEALLOCATE TABLES

-- 為了檢查,報告統計結果
SELECT * FROM #FRAGLIST

--第2階段: (整理碎片) 為每一個要整理碎片的索引聲明游標
DECLARE INDEXES CURSOR FOR
SELECT TABLENAME, INDEXNAME
FROM #FRAGLIST
-- 輸出開始時間
SELECT 'STARTED DEFRAGMENTING INDEXES AT ' + CONVERT(VARCHAR,GETDATE())
--打開游標
OPEN INDEXES
--循環所有的索引
FETCH NEXT
FROM INDEXES
INTO @TABLENAME, @INDEXNAME
WHILE @@FETCH_STATUS = 0
BEGIN
SET QUOTED_IDENTIFIER ON
SELECT @EXECSTR = 'ALTER INDEX '+@INDEXNAME+' ON '+@TABLENAME+' REBUILD WITH(FILLFACTOR=90,ONLINE=ON)'

SELECT 'Now executing: '
SELECT(@EXECSTR)
EXEC (@EXECSTR)
SET QUOTED_IDENTIFIER OFF
FETCH NEXT
FROM INDEXES
INTO @TABLENAME, @INDEXNAME
END
-- 關閉釋放游標
CLOSE INDEXES
DEALLOCATE INDEXES

-- 報告結束時間
SELECT 'FINISHED DEFRAGMENTING INDEXES AT ' + CONVERT(VARCHAR,GETDATE())

-- 刪除臨時表
DROP TABLE #FRAGLIST
GO

GO

設置定時執行步驟

(1)啟動【sql server Management Studio】,在【對象資源管理器】窗口里選擇【管理】——【維護計劃】選項。

(2)右擊【維護計劃】,在彈出的快捷菜單里選擇【維護計劃向導】選項,彈出如圖所示的【維護計劃向導】對話框,單擊【下一步】按鈕

(3)彈出如圖所示【選擇目標服務器】對話框,在【名稱】文本框里可以輸入維護計劃的名稱;在【說明】文本框里可以輸入維護計劃的說明文字;【在服務器】文本框里可以輸入要使用的服務器名;最后選擇正確的身份證信息,單擊【下一步】按鈕。

(4)彈出如圖所示【選擇維護任務】對話框,在該對話框中可以選擇執行sql維護任務,插入執行存儲過程語句

復制代碼 代碼如下:


USE [DBNAME]

GO

EXEC [dbo].[USP_IMS_DEFRAGMENT_INDEXES]

(5)指定任務執行計劃

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩免费区域视频在线观看| 欧美色道久久88综合亚洲精品| 国产精品自产拍在线观看中文| 日本视频久久久| 日韩在线观看免费全| 欧美成人免费va影院高清| 国产精品精品一区二区三区午夜版| 日韩视频一区在线| 欧美激情精品久久久久久| 国产一区香蕉久久| 亚洲精品国产品国语在线| 亚洲xxx视频| 色偷偷噜噜噜亚洲男人| 国产精品一区二区久久国产| 91精品国产91久久久久福利| 久久99精品国产99久久6尤物| 成人午夜激情免费视频| 欧美激情三级免费| 国产剧情日韩欧美| 色偷偷88888欧美精品久久久| 欧美激情久久久| 亚洲日本成人网| 色播久久人人爽人人爽人人片视av| 亚洲国产欧美在线成人app| 亚洲国产精品yw在线观看| 欧美三级免费观看| 久久人人爽人人爽爽久久| 中文字幕日韩在线播放| 秋霞成人午夜鲁丝一区二区三区| 久久精品国产成人| 精品av在线播放| 日韩大片在线观看视频| 国产精品视频最多的网站| 日韩高清人体午夜| 欧美体内谢she精2性欧美| 国产午夜精品全部视频在线播放| 懂色av中文一区二区三区天美| 成人在线视频网| 国产精品国产自产拍高清av水多| 亚洲精品xxxx| 国产九九精品视频| 九九九久久久久久| 亚洲国产精品va在线观看黑人| 欧美日韩性视频在线| 亚洲一区999| 91在线无精精品一区二区| 欧美成人免费播放| 国产成人高潮免费观看精品| 久久久久亚洲精品成人网小说| 亚洲精品永久免费精品| 欧美日韩福利电影| 国产精品美女视频网站| 91免费国产视频| 91网站免费观看| 日韩视频第一页| 亚洲人成电影网站色www| 国产亚洲一级高清| 亚洲欧洲国产伦综合| 成人精品视频在线| 日本久久精品视频| 人体精品一二三区| 精品亚洲aⅴ在线观看| 成人精品视频在线| 精品电影在线观看| 亚洲欧美国产精品专区久久| 亚洲第一视频网| 国产精品久久久| 亚洲男人天堂视频| 日韩在线观看免费av| 97高清免费视频| 欧美在线一区二区三区四| 麻豆国产va免费精品高清在线| 久久久久女教师免费一区| 中文字幕日韩专区| 亚洲影视中文字幕| 国产精品日韩在线一区| 欧美亚洲视频一区二区| 精品人伦一区二区三区蜜桃免费| 国产激情久久久| 日本一区二区不卡| 欧美一区二粉嫩精品国产一线天| 久久九九全国免费精品观看| 亚洲免费视频观看| 亚洲天堂男人的天堂| 亚洲欧美日韩中文在线| 日韩激情视频在线播放| 日韩欧美在线视频| 国产日韩欧美中文在线播放| 欧美影院在线播放| 亚洲综合中文字幕68页| 亚洲在线视频福利| 久久久久99精品久久久久| 国产精品久久久久久久久久免费| 久久精品国产视频| 在线播放国产一区中文字幕剧情欧美| 欧美在线视频网| 中文字幕av日韩| 亚洲美女性生活视频| 国产成人免费av电影| 久久999免费视频| 欧美国产极速在线| 亚洲日本中文字幕免费在线不卡| 国产精品久久久久久久久借妻| 91禁国产网站| 国产精品久久久久久久电影| 国产在线日韩在线| 国产成人高清激情视频在线观看| 国产精品第三页| 欧美日韩成人在线播放| 日韩三级影视基地| 日本成熟性欧美| 欧美三级免费观看| 狠狠躁夜夜躁人人爽天天天天97| 国产精品久久二区| 国产精品久久久久久久久久99| 国产福利精品av综合导导航| 欧美电影在线播放| 精品福利在线看| 日本精品久久中文字幕佐佐木| 欧美性极品xxxx做受| 欧洲美女免费图片一区| 精品偷拍各种wc美女嘘嘘| 午夜剧场成人观在线视频免费观看| 国产欧美欧洲在线观看| 亚洲精品一区中文字幕乱码| 亚洲黄色在线观看| 亚洲精品电影网站| 国产午夜精品全部视频在线播放| 亚洲国产精品免费| 5252色成人免费视频| 97福利一区二区| 7777精品视频| 欧美高清无遮挡| 一区二区欧美久久| 亚洲欧美国产精品va在线观看| 久久免费视频网| 国产视频精品va久久久久久| 在线免费观看羞羞视频一区二区| 亚洲毛片在线观看| 91系列在线观看| 亚洲综合精品伊人久久| 亚洲欧美色婷婷| 日韩av在线电影网| 欧美人与物videos| 国产精品自拍偷拍视频| 九九热精品在线| 欧美日韩免费一区| 91国产美女在线观看| 国产综合在线视频| 国产午夜精品美女视频明星a级| 国产精品老女人精品视频| 亚洲999一在线观看www| 久久999免费视频| 日韩精品福利网站| 日韩成人中文字幕| 欧美精品一区二区免费| 中文日韩在线观看| 亚洲精品久久久久中文字幕欢迎你| 国产一区二区三区在线播放免费观看| 国产美女主播一区| 欧美高清视频一区二区| 91欧美精品成人综合在线观看| 国产中文欧美精品| 日韩av综合中文字幕|