一台P4,1.6G,256M,80G服务器,安装MS Sql Server2000,默认配置。某一应用程序使Sql Server占用CPU时间达到96~100%,如何...

时间:2022-09-17 20:59:20
一台P4,1.6G,256M服务器,安装MS Sql Server2000,默认配置。某一应用程序使Sql Server占用CPU时间达到96~100%,从那些方面着手解决,以降低Sql Server占用CPU的时间?

1、优化应用程序(暂时无法改变,先不考虑)
2、能否优化Sql Server配置,降低Sql Server占用CPU的时间?
3、如果不能优化Sql Server,能否限制Sql Server占用CPU时间?

15 个解决方案

#1


我也很想知

#2


盼望

#3


kk

#4


關注

#5


程序的问题

#6


我知道是程序的问题,程序中使用了大量的查询计算。根据我找到的资料,MS认为这种情况cpu占用率是可达到100%对sqlserver没有影响,如服务器还需进行其它工作,其它工作会别影响,可增加cpu个数来解决。

可是对我来说:
1、优化应用程序暂时还能,而且程序的优化是有限制的。
2、增加cpu,更不可能。

所以想通过以下方法限制sqlserver对cpu的占用:
A、能否优化Sql Server配置,降低Sql Server占用CPU的时间?
B、如果不能优化Sql Server,能否限制Sql Server占用CPU时间?

系统是windows 2000 server + Ms sql server 2000

#7


如果不能从 Ms sql server 2000上想办法,能不能在 windows 2000 server 方面进行现在,因为这个服务器除运行sql server外有时还要同时进行其它工作。

#8


最彻底的方法就是优化程序。现在你可以监视CPU的内核时间和用户时间,如果内核时间比较高,可以将Sql切换到纤程模式运行。Sql好像没有限制CPU使用率的设置。

我估计你的内核模式时间不会太高,不过可以看一看。

#9


用sql server屬性中的memory,max server memory設一下,再設一下processor中的maximum worker threads試試

#10


在做大量数据处理时,我是在程序中调用Sleep,虽时间长一点,但可以降低CPU的占用

#11


微软说这是充分利用资源,是一个好的方面。你如果服务器还要做别的用处,那就没招了。建议你还是单独用的比较好,另外优化程序也只能使的查询速度更快一点尽快的释放CPU,加一个CPU也可以解决该问题。

#12


另外,我做过四个CPU的服务器,一个大数据量的查询进程点用一个CPU,当你再起一个进程时,它自动会调度另一个CPU,这其实就是微软的一个宣传的优势(充分利用资源)

#13


经过痛苦艰难的程序优化,费了我2昼夜的时间终于把sqlserver占用cpu降到60~80%,程序速度提高3倍。这是好事,但是正像wenjianzhang所说的“微软说这是充分利用资源”系统把其它cpu时间都分给我的应用程序了,总的cpu占用还是100%!

另外想问问各位高手

1、在属性中使用 windwos nt 纤程,与不使,用那个效率更高,默认是没有使用,只用线程。
2、默认最大工作线程是255,增大或减少,意义何在?根据什么情况确定使用多少。

#14


go

#15


1

#1


我也很想知

#2


盼望

#3


kk

#4


關注

#5


程序的问题

#6


我知道是程序的问题,程序中使用了大量的查询计算。根据我找到的资料,MS认为这种情况cpu占用率是可达到100%对sqlserver没有影响,如服务器还需进行其它工作,其它工作会别影响,可增加cpu个数来解决。

可是对我来说:
1、优化应用程序暂时还能,而且程序的优化是有限制的。
2、增加cpu,更不可能。

所以想通过以下方法限制sqlserver对cpu的占用:
A、能否优化Sql Server配置,降低Sql Server占用CPU的时间?
B、如果不能优化Sql Server,能否限制Sql Server占用CPU时间?

系统是windows 2000 server + Ms sql server 2000

#7


如果不能从 Ms sql server 2000上想办法,能不能在 windows 2000 server 方面进行现在,因为这个服务器除运行sql server外有时还要同时进行其它工作。

#8


最彻底的方法就是优化程序。现在你可以监视CPU的内核时间和用户时间,如果内核时间比较高,可以将Sql切换到纤程模式运行。Sql好像没有限制CPU使用率的设置。

我估计你的内核模式时间不会太高,不过可以看一看。

#9


用sql server屬性中的memory,max server memory設一下,再設一下processor中的maximum worker threads試試

#10


在做大量数据处理时,我是在程序中调用Sleep,虽时间长一点,但可以降低CPU的占用

#11


微软说这是充分利用资源,是一个好的方面。你如果服务器还要做别的用处,那就没招了。建议你还是单独用的比较好,另外优化程序也只能使的查询速度更快一点尽快的释放CPU,加一个CPU也可以解决该问题。

#12


另外,我做过四个CPU的服务器,一个大数据量的查询进程点用一个CPU,当你再起一个进程时,它自动会调度另一个CPU,这其实就是微软的一个宣传的优势(充分利用资源)

#13


经过痛苦艰难的程序优化,费了我2昼夜的时间终于把sqlserver占用cpu降到60~80%,程序速度提高3倍。这是好事,但是正像wenjianzhang所说的“微软说这是充分利用资源”系统把其它cpu时间都分给我的应用程序了,总的cpu占用还是100%!

另外想问问各位高手

1、在属性中使用 windwos nt 纤程,与不使,用那个效率更高,默认是没有使用,只用线程。
2、默认最大工作线程是255,增大或减少,意义何在?根据什么情况确定使用多少。

#14


go

#15


1