Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
C# 在多次SQL查询或在列表中一次全部获取和在循环中处理之间,什么速度更快_C#_Sql_Optimization - Fatal编程技术网

C# 在多次SQL查询或在列表中一次全部获取和在循环中处理之间,什么速度更快

C# 在多次SQL查询或在列表中一次全部获取和在循环中处理之间,什么速度更快,c#,sql,optimization,C#,Sql,Optimization,我必须一次处理近300条记录的数据。我想知道哪种选择更好。 在自定义对象中一次获取所有300条记录,例如,在C#中,并根据某个键在一组三条记录中处理它们。 或 每次从数据库中获取3条记录并进行一些处理,然后获取下3条记录。视情况而定 如果您打算每3行执行一个查询,这可能会比较慢,但这取决于可用内存的多少。如果行很大,而可用内存量很小,那么3和3可能会运行得更快,但我怀疑您是否处于这种情况 无论如何,我的建议是:使用最简单的解决方案来实现。如果结果显示它存在性能问题(并且是此操作中需要花费时间的

我必须一次处理近300条记录的数据。我想知道哪种选择更好。
在自定义对象中一次获取所有300条记录,例如,在C#中,并根据某个键在一组三条记录中处理它们。

每次从数据库中获取3条记录并进行一些处理,然后获取下3条记录。

视情况而定

如果您打算每3行执行一个查询,这可能会比较慢,但这取决于可用内存的多少。如果行很大,而可用内存量很小,那么3和3可能会运行得更快,但我怀疑您是否处于这种情况

无论如何,我的建议是:使用最简单的解决方案来实现。如果结果显示它存在性能问题(并且是此操作中需要花费时间的事情列表中最重要的一项),那么只有到那时,您才会考虑如何让它运行得更快

使用我拥有的类库,将所有300个类检索到一个列表中将是绝对最简单的事情,所以这就是我要做的

注意:如果要实现的绝对最简单的解决方案是您知道存在性能问题的解决方案,请继续执行下一个稍难实现的解决方案,依此类推。例如,如果我要对数组中的大量元素进行排序,并且必须编写自己的排序例程,我将永远不会使用冒泡排序,即使它非常容易实现。

这取决于具体情况

如果您打算每3行执行一个查询,这可能会比较慢,但这取决于可用内存的多少。如果行很大,而可用内存量很小,那么3和3可能会运行得更快,但我怀疑您是否处于这种情况

无论如何,我的建议是:使用最简单的解决方案来实现。如果结果显示它存在性能问题(并且是此操作中需要花费时间的事情列表中最重要的一项),那么只有到那时,您才会考虑如何让它运行得更快

使用我拥有的类库,将所有300个类检索到一个列表中将是绝对最简单的事情,所以这就是我要做的


注意:如果要实现的绝对最简单的解决方案是您知道存在性能问题的解决方案,请继续执行下一个稍难实现的解决方案,依此类推。例如,如果我要对一个数组中的大量元素进行排序,并且必须编写自己的排序例程,我将永远不会使用气泡排序,即使它非常容易实现。

将所有记录都带来并处理它们会更好,因为这将减少获取数据对象所消耗的时间

带来所有记录并对其进行处理会更好,因为这将减少获取数据对象所花费的时间

或根本不提取记录,并对数据库进行所有处理。这是一个关于数据库是否应该被视为哑数据存储,或者是否可以将业务逻辑向下推到数据库中(这可以带来主要的性能优势)的老论点

或根本不提取记录,并对数据库进行所有处理。这是一个关于数据库是否应该被视为哑数据存储,或者是否可以将业务逻辑向下推到数据库中(这可以带来主要的性能优势)的老论点

+1用于最简单的go,并在以后进行优化!这需要说多少次:)KIS(S)原则通常是快速开发的最佳原则+1表示如果最简单的方法是已知的性能杀手,请不要使用它。+1表示使用最简单的方法,并在以后进行优化!这需要说多少次:)KIS(S)原则通常是快速开发的最佳原则+1指出,如果最简单的方法是已知的性能杀手,请不要使用它。