国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

SQL SEVER數(shù)據(jù)庫重建索引的方法

2024-08-31 01:02:38
字體:
供稿:網(wǎng)友

一.查詢思路

1.想要判斷數(shù)據(jù)庫查詢緩慢的問題,可以使用如下語句,可以列出查詢語句的平均時(shí)間,總時(shí)間,所用的CPU時(shí)間等信息

SELECT creation_time N'語句編譯時(shí)間',last_execution_time N'上次執(zhí)行時(shí)間',total_physical_reads N'物理讀取總次數(shù)',total_logical_reads/execution_count N'每次邏輯讀次數(shù)',total_logical_reads N'邏輯讀取總次數(shù)',total_logical_writes N'邏輯寫入總次數(shù)', execution_count N'執(zhí)行次數(shù)', total_worker_time/1000 N'所用的CPU總時(shí)間ms', total_elapsed_time/1000 N'總花費(fèi)時(shí)間ms', (total_elapsed_time / execution_count)/1000 N'平均時(shí)間ms',SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,((CASE statement_end_offsetWHEN -1 THEN DATALENGTH(st.text)ELSE qs.statement_end_offsetEND- qs.statement_start_offset)/2) + 1) N'執(zhí)行語句'FROM sys.dm_exec_query_stats AS qsCROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) stwhere SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,((CASE statement_end_offsetWHEN -1 THEN DATALENGTH(st.text)ELSE qs.statement_end_offsetEND- qs.statement_start_offset)/2) + 1) not like'%fetch%'ORDER BY total_elapsed_time / execution_count DESC;


2.列出數(shù)據(jù)庫每個(gè)表的數(shù)據(jù)量,并且需要運(yùn)維人員對業(yè)務(wù)足夠了解,知道大概哪些表是查詢量最多的,可以查看“排在前面的表的磁盤使用情況”:

3.查看表碎片的情況,可以使用命令

DBCC SHOWCONTIG

可以看到該表掃描密度只有33.52%(最佳狀態(tài)是100%,每個(gè)表頁都寫滿數(shù)據(jù)),遠(yuǎn)遠(yuǎn)低于最佳計(jì)數(shù),也就是說這個(gè)表的利用率很低,本來掃描一頁 就能出結(jié)果,現(xiàn)在可能需要掃描三頁,增加了查詢時(shí)間;而邏輯碎片和區(qū)碎片都很多(一般認(rèn)為超過30%就需要優(yōu)化了),也就是說同樣一頁,數(shù)據(jù)很少而碎片很 多,占用了過多的數(shù)據(jù)庫資源。
4.根據(jù)你對業(yè)務(wù)的了解,找出查詢最多的表,對比他的數(shù)據(jù),查詢時(shí)間,和碎片程度可以判斷出該表是否需要整理碎片,重建索引,以提高數(shù)據(jù)庫性能。
重建索引的語句為:

use[數(shù)據(jù)庫名]
ALTER INDEX ALL ON [表名稱] REBUILD;

重建后,同樣的一張表NWME_Company_Index,再次查詢表碎片情況的結(jié)果如下:

可以看到密度已經(jīng)變?yōu)?6.9%,而邏輯碎片幾乎沒有了。

5.現(xiàn)在可以看一下整理碎片后,是否真的對查詢性能優(yōu)化了,再次運(yùn)行第一點(diǎn)列出的命令查看可以發(fā)現(xiàn),大部分查詢語句所用的平均時(shí)間都下降了接近一半:

現(xiàn)在可以到前臺實(shí)際體驗(yàn)優(yōu)化后的效果了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 苍山县| 芒康县| 九台市| 凤阳县| 昭通市| 甘孜| 墨竹工卡县| 绿春县| 巧家县| 林甸县| 岐山县| 庆云县| 高雄县| 建宁县| 邳州市| 社旗县| 盐源县| 深泽县| 墨江| 福海县| 屏东县| 江北区| 高清| 伊川县| 长武县| 乐业县| 宾阳县| 项城市| 克拉玛依市| 新晃| 陆川县| 太仓市| 剑川县| 鸡东县| 宣威市| 海宁市| 松滋市| 什邡市| 潞西市| 方城县| 昆山市|