|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
BDB源自BerkeleyDB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性常常在论坛看到问高CPU的成绩,复杂的总结一下。
1,起首你要确认,高CPU是否是是SQLSERVER历程引发的仍是其余历程引发的,这个很简单,间接看义务办理器。
2,假如从义务办理器看出高CPU的确是用SQLSERVER引发的。
3,假如是SQLSERVER引发的。
3.1SQLSERVER的一个对照BAD的实行企图引发的,好比说短少需要的INDEX,引发了hashjoin甚么的。这个也分红2种:
1,形成高CPU的语句已实行停止,这个时分能够用上面的语句来反省。
select
highest_cpu_queries.plan_handle,
highest_cpu_queries.total_worker_time,
q.dbid,
q.objectid,
q.number,
q.encrypted,
q.[text]
from
(selecttop50
qs.plan_handle,
qs.total_worker_time
from
sys.dm_exec_query_statsqs
orderbyqs.total_worker_timedesc)ashighest_cpu_queries
crossapplysys.dm_exec_sql_text(plan_handle)asq
orderbyhighest_cpu_queries.total_worker_timedesc
注释一下sys.dm_exec_query_stats:
sys.dm_exec_query_stats前往缓存查询企图的聚合功能统计信息。每一个查询企图在该视图中对应一行,而且行的保存期与企图自己相干联。在从缓存删除企图时,也将从该视图中删除对应行。
可检察匡助文档:ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/eb7b58b8-3508-4114-97c2-d877bcb12964.htm
3.1.2,形成高CPU的语句正在运转,这个时分能够用上面的语句来反省。
SELECTst.text,qp.query_plan,rq.*
FROMsys.dm_exec_requestsRQCROSSAPPLYsys.dm_exec_sql_text(rq.sql_handle)asst
CROSSAPPLYsys.dm_exec_query_plan(rq.plan_handle)asqporderbyRQ.CPU_timedesc
3.2开启了SQLprofiler.
经由过程3.1.2能够看到sp_trace_getdata这个SP在运转。
3.3过分的编译跟重编译。
能够经由过程上面的SQL来查
selecttop25
sql_text.text,
sql_handle,
plan_generation_num,
execution_count,
dbid,
objectid
from
sys.dm_exec_query_statsa
crossapplysys.dm_exec_sql_text(sql_handle)assql_text
where
plan_generation_num>1
orderbyplan_generation_numdesc
3.4某个体系历程酿成的,好比说Ghostcleanup,Lazywriter等。能够经由过程select*fromsys.sysprocesseswherespid<51来查。
形成详细的引发高CPU究竟是甚么引发的,然后有的放矢。由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏: |
|