需求:
由于某些查询消耗的服务器资源很大,严重影响到了各个客户端的请求。
例如:
某个客户端的一个请求(SQL语句查询)提交到中间层,中间层执行时SQLServer自身占用了服务器的大量资源,导致其它应用以及请求执行明显减慢,响应时间过长。
这种情况如何解决?
必须保证:
客户端提交这样的请求,即对某个单表(数据量>1000w)进行较复杂的SQL查询的功能必须提供,但是需要保证其它客户端的请求响应时间正常!——nnd晕了
或者在某个客户端尽进行耗资源操作时,可以提供“取消”功能,即客户端可以取消当前请求,当然不能影响其它正常操作!急呀~~~~~~~~~~~~~~~~~~~~~~~~
在线等~~~~~~~~~~~~~~~~~~~~~~
分不够还可以另开贴~~~~~~~~~~
由于某些查询消耗的服务器资源很大,严重影响到了各个客户端的请求。
例如:
某个客户端的一个请求(SQL语句查询)提交到中间层,中间层执行时SQLServer自身占用了服务器的大量资源,导致其它应用以及请求执行明显减慢,响应时间过长。
这种情况如何解决?
必须保证:
客户端提交这样的请求,即对某个单表(数据量>1000w)进行较复杂的SQL查询的功能必须提供,但是需要保证其它客户端的请求响应时间正常!——nnd晕了
或者在某个客户端尽进行耗资源操作时,可以提供“取消”功能,即客户端可以取消当前请求,当然不能影响其它正常操作!急呀~~~~~~~~~~~~~~~~~~~~~~~~
在线等~~~~~~~~~~~~~~~~~~~~~~
分不够还可以另开贴~~~~~~~~~~
主要就是在这个上面郁闷呀~所以想来想去,优化SQL,优化数据库配置,提供增删字段索引...若干功能后,发现还需要提供客户端查询请求的“取消”功能,但是需要准确的取消当前请求,不能影响当前客户端的其它操作更不能影响其它客户端!就这个问题也问过微软的技术支持,直到可以通过SQLServer中的spid来处理,但是由于我使用的开发工具是Delphi,在使用ClientDataSet分包取数时会产生多个?spid?而这个spid在SQLServer的查询分析器中还看不到!?——郁闷~
ClientDataSet做了什么?
spid指的到底是什么?
怎么利用这个来“取消”请求?有没有人用过?
急~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~