db2为何有的sql占不到资源,一有其他进程,cpu和内存就5%以内 20
最近有条a.sql在数据库001上特别慢,一旦有同时执行其他sql,这条sql就占不到资源;在其他数据库(比如002)上都没这情况;其他老旧的主机(比如002)跑这条sq...
最近有条a.sql在数据库001上特别慢,一旦有同时执行其他sql,这条sql就占不到资源;
在其他数据库(比如002)上都没这情况;
其他老旧的主机(比如002)跑这条sql,都比001快,这是为啥。。。 展开
在其他数据库(比如002)上都没这情况;
其他老旧的主机(比如002)跑这条sql,都比001快,这是为啥。。。 展开
2016-10-29
展开全部
SQL占用了CPU将近100%的资源,解决方法如下:
1、服务器CPU过高,首先查看系统进程,确定引发CPU过高的进程;
2、通过SQLServer Profiler能够轻易监控到哪些SQL语句执行时间过长,消耗最多的CPU;
3、通过SQL语句是可以查看每条SQL语句消耗的CPU是多少;
4、导致CPU高的都是进行大量计算的语句:包括内存排序、表扫描、编译计划等;
5、如果使用Top刷选前面几条语句,则尽量为Order By子句建立索引,这样可以减少对所有的刷选结果进行排序;
6、使用Count查询记录数时,尽量通过为where字句的相关字段建立索引以减少表扫描。如果多个表进行join操作,则把相关的表连接字段建立在包含索引中;
7、通过服务端通知的方式,减少SQL语句的查询;
8、通过表分区,尽量降低因为添加索引而导致表插入较慢的影响。
1、服务器CPU过高,首先查看系统进程,确定引发CPU过高的进程;
2、通过SQLServer Profiler能够轻易监控到哪些SQL语句执行时间过长,消耗最多的CPU;
3、通过SQL语句是可以查看每条SQL语句消耗的CPU是多少;
4、导致CPU高的都是进行大量计算的语句:包括内存排序、表扫描、编译计划等;
5、如果使用Top刷选前面几条语句,则尽量为Order By子句建立索引,这样可以减少对所有的刷选结果进行排序;
6、使用Count查询记录数时,尽量通过为where字句的相关字段建立索引以减少表扫描。如果多个表进行join操作,则把相关的表连接字段建立在包含索引中;
7、通过服务端通知的方式,减少SQL语句的查询;
8、通过表分区,尽量降低因为添加索引而导致表插入较慢的影响。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询