在代码(C#、Java)和数据库(SQL)之间,我们应该在哪里排序或过滤?

Posted

技术标签:

【中文标题】在代码(C#、Java)和数据库(SQL)之间,我们应该在哪里排序或过滤?【英文标题】:Between code (C#, Java) and database (SQL) where should we sort or filter? 【发布时间】:2010-12-11 20:45:54 【问题描述】:

在代码(C#、Java)和数据库 (SQL) 之间,我们应该在哪里排序或过滤?

在代码中,这意味着有一个存储过程来从数据库中检索所有数据,然后过滤我的数据(在业务或数据层中)。

在数据库中,这意味着有一个存储过程。在这种情况下,代码(数据层)将我的过滤器设置发送到存储过程,该过程会注意返回减轻的数据。

什么更好,在什么情况下?

【问题讨论】:

【参考方案1】:

这实际上取决于使用的性质。示例:

数据大小 获取频率 对用户的响应时间 等等等等

一般来说,让数据库服务器尽可能多地进行与数据相关的操作,它们为此进行了优化。但这不是一个明确的规则。在许多情况下,一次性检索一批数据,在 UI 层/应用程序端呈现和排序/过滤。例如。用于网页上的小表格排序以加快响应时间。

【讨论】:

【参考方案2】:

一般来说,您应该在代码中创建请求并让数据库服务器完成这项工作。对于特定情况,您还可以决定在您的客户端类中进行过滤。

【讨论】:

以上是关于在代码(C#、Java)和数据库(SQL)之间,我们应该在哪里排序或过滤?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 和 Java 之间的时间戳差异

天蓝色函数时间触发器和天蓝色sql数据库与c#之间的连接:错误。如何修复它

C# 中不同数据库(如 Oracle 和 SQL Server)之间的 Sql 查询 [关闭]

构建 SQL 查询以在 C# 中的 2 个 DateTimePickers 的值之间进行搜索

C# 和 MS Access 之间的数据类型不匹配?

在没有 Java EE 应用服务器的情况下使用 Web 服务在 C# 和 Java 之间进行互操作?