我应该直接检查“文件是否存在”或检查数据库列?

时间:2009-11-13 05:59:21

标签: c# performance

如果有大量支票,哪个更有效?

bool exists=File.Exists(file);

bool exists= check db list of existing files;

3 个答案:

答案 0 :(得分:3)

当然是第二个,因为像这样的系统调用很昂贵。最好使用集合目录列表功能,并在没有文件系统注意的情况下检查内存中是否存在文件。

答案 1 :(得分:2)

取决于。

如果要检查文件是否存在,则别无选择,只能检查文件系统。是的,这可能比db调用慢。 Db调用仍然是远程进程间调用,因此本身就很昂贵。

答案是尝试同时,分析和优化以获得针对特定场景的最佳答案。

答案 2 :(得分:1)

如果在数据库中写入文件的路径,则比File.Exists请求它的速度快,具体取决于文件的数量。如果你只要求一个,它不是一个很大的差异。但是如果你检查更多的文件,数据库请求会更快,我想你会通过数据库得到文件的路径,对吗?