如何让查询时占用的cpu处理能力少些?(100分)

  • 主题发起人 主题发起人 wuyi
  • 开始时间 开始时间
W

wuyi

Unregistered / Unconfirmed
GUEST, unregistred user!
当在程序中作一个比较大的查询时,机器的cpu使用就
占到100%,有什么办法解决呢?因为一般查询服务器上
的内容时,本机应该不忙的。
 
将服务器的进程的等级设为一般,不要设为实时。
 
在哪里设?sql6.5
 
我不知道SQL6.5的在哪。自己找找吧。
 
用多线程,做个后台查询。
 
服务器上把后台设成优先
在客户端上设定成后台多线程查询,还有一大堆东东要设定,要具体问题具体分析
把问题说的详细一点吧
 
一般来说,CPU到100%,说明你的查询语句写得有问题,
虽然它语法上是正确的。
你应该将你得SQL语句写出来让大家参考参考。
 
我觉得关键在于SQL语句的优化
1、Join的问题
<B>尽量不要使用全连接</B>
<B>尽量将查询条件改为连接条件</B>
比如:
Select * from A,B Where A.ID=B.ID
应该优化为:
Select * from A Join B on A.ID=B.ID
这是大家通常不注意的地方,有时候效果很明显

2、查询条件的问题
<B>条件尽量严格</B>
<B>尽量将条件中速度最快的部分放在前面</B>
比如:
Select * from A where Name Like 'Z%' and ID>10000
应该优化为:
Select * from A where ID>10000 and Name Like 'Z%'
这一点估计也很少有人注意
3、字段问题
<B>返回尽量少的字段</B>
这一点主要关系到查询结果在网络上的传输问题

不够详细,请大家继续补充~~~
 
诸位,SQL语句再优化,也有可能造成CPU资源战局过多的,因为根据实际情况
的确有可能进行大的查询。
wuyi:你到MSSQL的CONFIGURATION里查查,应该有些参数的,我记得至少有最大/小
内存占用,CPU我不记得了。开个现成只能对客户端起作用,而不是服务器端。
如果要跟踪你的SQL语句,找出消耗资源所在,可以用mssql 的 profilter
(Trace)来跟踪有关项目。也可以配合Performance Monitor 使用。
 
用服务器的存贮过程查询应该是主要在服务器端进行。
 
多人接受答案了。
 
后退
顶部