Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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或.NET中排序?_.net_Sql Server_Sorting - Fatal编程技术网

在SQL Server或.NET中排序?

在SQL Server或.NET中排序?,.net,sql-server,sorting,.net,Sql Server,Sorting,在内存和CPU使用率方面,在SQL Server或.NET中对结果集进行排序,哪一个更好 例如,我有一个名为csp_Products的存储过程,它返回1000行-结果应按产品名称排序,在SQL Server中使用ORDER by子句对其排序更好,还是在检索完数据后在.NET中进行排序更好?取决于具体情况,但理想情况下,您希望对数据库进行排序,并限制仅返回指定查询的数据量。 返回的内容不要超过需要,返回的格式应使处理该内容所需的工作量最少。如果可以在SQL Server中使用ORDER BY子句执

在内存和CPU使用率方面,在SQL Server或.NET中对结果集进行排序,哪一个更好


例如,我有一个名为
csp_Products
的存储过程,它返回1000行-结果应按产品名称排序,在SQL Server中使用
ORDER by
子句对其排序更好,还是在检索完数据后在.NET中进行排序更好?

取决于具体情况,但理想情况下,您希望对数据库进行排序,并限制仅返回指定查询的数据量。
返回的内容不要超过需要,返回的格式应使处理该内容所需的工作量最少。

如果可以在SQL Server中使用
ORDER BY
子句执行此操作,请执行此操作。SQL Server用于检索和操作数据,速度更快


也就是说,根据返回的数据类型和行数,可能没有明显的差异。100行数据实际上不需要担心性能。

我会选择SQL server,因为它可以使用索引(如果有任何索引可以利用)

我要补充一点,如果您想知道(a)或(b)是否更好,请使用数据、硬件和使用模式相互测试(a)和(b)。虽然我同意在这种情况下,你不可能发现太多的差异,但有很少的硬性规定-总是一些“视情况而定”的因素,可以改变答案从(a)到(b),或反之亦然。例如,如果您想要排序的列没有索引,有800亿行,您想要的100行没有通过这种排序来标识,并且您的.NET计算机的RAM比SQL Server多10倍,我可能会在客户端上排序

正如其他人所说,对数据库本身中的数据进行排序是一种很好的做法,您可以根据不同的标准进行分组,对于每个分组,您也可以进行排序。它也使用索引,如果你有很好的索引数据库,它可以被认为是性能的一个好处。
话虽如此,但不应返回所有行,而应使用自定义分页和必要的筛选条件,这将返回您为分页选择的行数和找到的结果总数。这肯定会提高性能。

他们(前三个回复)所说的。因为只有100行要排序(比386快),所以可能不会有太大区别。好吧,但这不是问题所在。想象有更多的争吵。@William无意冒犯,但如果这不是问题,那么也许你应该改变问题。如果100行不相关,为什么要提及它们呢?我们办公室有一个SQL Server MVP,它说在.NET中进行排序,这样更好-SQL Server排序的成本更高!这是哪个SQL Server MVP?是的,谢谢,但问题不是返回的行数和筛选。你的问题是服务器端或应用程序端的排序。我的anwser不涉及返回的行数。