失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 优化-SQL Server 05 的动态管理视图DMV和函数DMF

优化-SQL Server 05 的动态管理视图DMV和函数DMF

时间:2023-10-12 05:30:23

相关推荐

优化-SQL Server 05 的动态管理视图DMV和函数DMF

SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断和性能优化.配合Profiler,dashboard一起使用很不错.

使用sys.dm_exec_query_stats和sys.dm_exec_sql_text找到CPU占用率高的语句 这里有篇文章不错/tips/159/7771659.shtml

SELECTTOP100execution_count,

total_logical_reads/execution_countAS[AvgLogicalReads],

total_elapsed_time/execution_countAS[AvgElapsedTime],

db_name(st.dbid)as[databasename],

object_name(st.dbid)as[objectname],

object_name(st.objectid)as[objectname1],

SUBSTRING(st.text,(qs.statement_start_offset/2)+1,

((CASEstatement_end_offsetWHEN-1THENDATALENGTH(st.text)ELSEqs.statement_end_offsetEND-qs.statement_start_offset)

/2)+1)ASstatement_text

FROMsys.dm_exec_query_statsASqsCROSSAPPLYsys.dm_exec_sql_text(qs.sql_handle)ASst

WHEREexecution_count>100

ORDERBY1DESC;

--关于statement_start_offset/2的疑问/u/0308/14/6b6307d1-efea-459c-b3cd-b50c29d3642e.html

IO跟踪

setstatistics io on

go

selecttop1*from sales.customer where customertype <>'S';

CustomerID TerritoryID AccountNumber CustomerType rowguidModifiedDate CustomerID TerritoryID AccountNumber CustomerType rowguidModifiedDate

----------- ----------- ------------- ------------ ------------------------------------ -----------------------

11000 9AW00011000 I477586B3-2977-4E54-B1A8-569AB2C7C4D4 -10-13 11:15:07.263

(1 行受影响)

表 'Customer'。扫描计数 1,逻辑读取 6 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

--如果需要清理缓存池DBCC DROPCLEANBUFFER CPU时间

declare@xint;

declare@cpu_startint;

set@x=1;

set@cpu_start=@@cpu_busy;

while@x<10000

set@x=@x+1;

print'ms of cput for loop1:'

+cast ( (@@cpu_busy-@cpu_start) +@@timeticks/1000aschar);

set@cpu_start=@@cpu_busy;

while@x<100000

set@x=@x+1;

print'ms of cput for loop1:' +cast ( (@@cpu_busy-@cpu_start) +@@timeticks/1000aschar);--注意这两个参数@@cpu_busy @@timeticks使用sys.dm_exec_cached_plans和sys.dm_exec_sql_text找到执行最频繁的语句这里有篇文章不错/tips/161/7810661.shtml

当dbid值是32767时,就会出现这种情况。因为数据库的ID号与系统数据库,即所谓的资源库是有联系的。这个资源库不是众所周知,但它却是存在于系统中的一个实际数据库,他的确存在,但你在SQL Server Management Studio中却看不到它。在你的数据文件目录下,有一个以字符串“mssqlsystemreource”开始命名的MDF和LDF文件,那就是资源数据库了

SELECTCASEwhen dbid =32767

then'Resource'

elseDB_NAME(dbid) end[DB_NAME],

OBJECT_SCHEMA_NAME(objectid,dbid) AS[SCHEMA_NAME],

OBJECT_NAME(objectid,dbid)AS[OBJECT_NAME],

SUM(usecounts) AS[Use_Count],

SUM(total_elapsed_time) AS[total_elapsed_time],

SUM(total_elapsed_time) /SUM(usecounts) *1.0AS[avg_elapsed_time],

substring(convert(char(23),DATEADD(ms,sum(total_elapsed_time)/1000,0),121),12,23) AS total_elapsed_time_ms, dbid,

objectid

FROM sys.dm_exec_cached_plans cp

CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle)

JOIN

(SELECTSUM(total_elapsed_time) AS[total_elapsed_time],

plan_handle

FROM sys.dm_exec_query_stats

GROUPBY plan_handle) qs

ON cp.plan_handle = qs.plan_handle

WHERE objtype ='Proc'

ANDUPPER(

-- remove white space first

REPLACE(

REPLACE(

REPLACE(

REPLACE(

REPLACE(

REPLACE(

REPLACE(text,'',''),

'',''),

'',''),

'', ''),

'',''),

'',''),

'','')

)

LIKE'%CREATE PROC%'

GROUPBY dbid, objectid

ORDERBYSUM(total_elapsed_time) /SUM(usecounts) *1.0DESC;

如果觉得《优化-SQL Server 05 的动态管理视图DMV和函数DMF》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。