Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL server限制存储过程的资源_Sql Server_Performance_Sql Server 2008 R2 - Fatal编程技术网

Sql server SQL server限制存储过程的资源

Sql server SQL server限制存储过程的资源,sql-server,performance,sql-server-2008-r2,Sql Server,Performance,Sql Server 2008 R2,我有一个存储过程,它占用了太多的服务器资源。我想限制这个查询只使用不超过10%的重复保险。我听说过,但它只适用于企业版和开发版。我有标准版。 除了购买更好版本的sql server之外,还有其他选择吗?您可以使用MAXDOP查询提示来限制给定查询可以使用多少CPU。除了您提到的高端提示,我认为没有任何东西可以让您对内存分配或磁盘使用设置单进程级别的限制。您可以使用MAXDOP查询提示来限制给定查询可以使用多少CPU。除了你提到的高端产品之外,我认为没有任何东西可以让你对内存分配或磁盘使用设置单一

我有一个存储过程,它占用了太多的服务器资源。我想限制这个查询只使用不超过10%的重复保险。我听说过,但它只适用于企业版和开发版。我有标准版。
除了购买更好版本的sql server之外,还有其他选择吗?

您可以使用
MAXDOP
查询提示来限制给定查询可以使用多少CPU。除了您提到的高端提示,我认为没有任何东西可以让您对内存分配或磁盘使用设置单进程级别的限制。

您可以使用
MAXDOP
查询提示来限制给定查询可以使用多少CPU。除了你提到的高端产品之外,我认为没有任何东西可以让你对内存分配或磁盘使用设置单一进程级别的限制。

定义“资源”。伊奥?中央处理器?记忆?网络?争论?日志大小?tempdb?你不能回答“全部”。您需要指定过程现在正在消耗哪些资源

你的问题太笼统,无法回答。没有通用机制来限制查询或过程上的“资源”,即使资源调控器也只限制一些资源。您将您的问题描述为长时间的高容量数据操作,如整个数据库中数以万计的插入更新,这将指示批处理。如果过程确实执行了您描述的操作,那么限制其执行可能不是您想要的,因为您希望减少事务(批处理)的持续时间,而不是增加它


首先也是最重要的一点:您是否将过程作为过程资源消耗作为性能问题进行了分析,使用了类似的方法?只有在您这样做并且过程以最佳方式运行(这意味着它消耗执行其工作所需的最少资源)之后,您才能考虑限制过程(最有可能的是,到那时限制的需求已经神奇地消失了)。

定义“资源”。伊奥?中央处理器?记忆?网络?争论?日志大小?tempdb?你不能回答“全部”。您需要指定过程现在正在消耗哪些资源

你的问题太笼统,无法回答。没有通用机制来限制查询或过程上的“资源”,即使资源调控器也只限制一些资源。您将您的问题描述为长时间的高容量数据操作,如整个数据库中数以万计的插入更新,这将指示批处理。如果过程确实执行了您描述的操作,那么限制其执行可能不是您想要的,因为您希望减少事务(批处理)的持续时间,而不是增加它


首先也是最重要的一点:您是否将过程作为过程资源消耗作为性能问题进行了分析,使用了类似的方法?只有在您这样做并且过程以最佳方式运行(这意味着它消耗执行其工作所需的最少资源)之后,您才能考虑限制过程(最有可能的是,到那时限制的需求已经神奇地消失了)。

优化查询如何?把它分解成几个组成部分?检查索引?@AndrewBarber,不幸的是,这无法完成,因为此查询假定运行缓慢(这是一个长时间的高容量数据操作,就像整个数据库中数以万计的插入更新一样)。也许有可能以某种方式从另一台服务器获取资源?我看不出优化有什么帮助。事实上,似乎把它分解成几个部分正是这里所需要的,而其他部分仍然可以提供帮助。仅仅因为某些东西必须“长时间运行”,并不意味着它不能有效。它只是让它的高效运行变得更加重要。优化查询怎么样?把它分解成几个组成部分?检查索引?@AndrewBarber,不幸的是,这无法完成,因为此查询假定运行缓慢(这是一个长时间的高容量数据操作,就像整个数据库中数以万计的插入更新一样)。也许有可能以某种方式从另一台服务器获取资源?我看不出优化有什么帮助。事实上,似乎把它分解成几个部分正是这里所需要的,而其他部分仍然可以提供帮助。仅仅因为某些东西必须“长时间运行”,并不意味着它不能有效。这使得它的高效运行变得更加重要。谢谢。我需要调查这一切,谢谢。我需要调查这一切。