|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。扫除硬件成绩,体系变慢了,起首你必要确认是某个特定的操纵变慢了,仍是一切的操纵都变慢。
1,假如是某个特定的操纵变慢了。
1.1,是使用程序变的成绩变慢了,仍是数据库的成绩酿成的。
这个能够用TierInteractionProfiler来断定,能够看到哪些functioncall消费了最多的工夫。
http://blogs.msdn.com/b/habibh/archive/2009/06/30/walkthrough-using-the-tier-interaction-profiler-in-visual-studio-team-system-2010.aspx
假如经由过程下面的办法发明消费工夫最多的functioncall,来判别谁人functioncall是否是对数据库的会见。
假如不是,那就是使用程序的成绩了,这个能够对function举行codereview大概间接用WINDBG跟SOS来profiling,这部分的器材长短常庞大的,
也不在本主题的会商会见,以是不在此做过量的注释。
假如是某个会见数据库的办法占了很年夜工夫,那就检察对应的T-SQL大概SP。
然后就是对特定的SP大概T-SQL举行诊断了。
这个也分为2个范例,
一个是SP大概T-SQL自己的成绩,这个就是对它们本身举行调优。
另外一个是外界要素酿成的,好比说LOCK,大概CPU资本大概是memory资本酿成的,
这个我们能够profiling特定的SP大概T-SQL,看看他们工夫究竟花在那里,这个时分就要用XE来查找究竟瓶颈在那里,好比说在守候甚么资本,详细的你能够看一下:
上面链接中103楼的做法,看看工夫究竟花在那里,然后做响应的操纵。
http://bbs.csdn.net/topics/390505826?page=2
2,假如做甚么操纵都很慢。
起首要看一下,使用程序服务器的资本情形,看看它们是否是很严重,好比说CPU,memory,IO的相干情形。
然后用ETW看检察,究竟是哪些办法花了良多的工夫,详细的参考。
http://msdn.microsoft.com/en-us/magazine/cc163437.aspx
http://www.codeproject.com/Articles/570690/Application-Analysis-with-Event-Tracing-for-Window
找到那些办法后,然后你就晓得是使用程序的成绩仍是DB的成绩。
假如是DB的成绩,
第一步:就是查那些占用了资本最多的那些TOP的SPT-SQL.
这个能够经由过程上面的whitepaper查找。
TroubleshootingPerformanceProblemsinSQLServer2008
http://download.microsoft.com/download/D/B/D/DBDE7972-1EB9-470A-BA18-58849DB3EB3B/TShootPerfProbs2008.docx
第二步:在办理了下面的那些TOP的SQL以后,能够再查一下waitSTATISTICS的成绩。这个也是个很庞大的话题,详细的能够参考
http://download.microsoft.com/.../Performance_Tuning_Waits_Queues.doc?
固然另有些成绩是程序的呈现逝世锁,大概锁之类的,大概逝世轮回,这些都能够用WINDBG找出来。
最初,不管是你使用程序程序员仍是DBA,假如你善用一些debugging大概profiling工具,好比说WINDBG大概ETW,
那几近能够troubleshooting任何你觉得很奇异大概很难明决的成绩。如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%‘,MySQL将使用索引;如果查询条件是LIKE%abc’,MySQL将不使用索引。 |
|