回答

收藏

在应用程序层或使用order by对数据进行排序是否更好?

技术问答 技术问答 265 人阅读 | 0 人回复 | 2023-09-14

很久以前,建议我在应用程序层对数据进行排序,而不是ORDER BY在SQL使用这个句子。原因是。.Net对。会更有效SQL排序引擎。
8 t) l1 g; x: s/ T' S6 V( m遇见了我SSIS最好的实践矛盾的是,它的建议是SQL排序数据(如果可以的话),避免Sort转换。  ^3 H+ y9 I' V/ H5 w  z/ o
SSIS我的建议对我来说很有意义。所以,现在我想知道最初避免这种情况的建议ORDER BY是假的。
& ?( ^+ ~: h2 i0 E; \给出一个不太复杂的查询,ORDER BY是否意味着性能受到影响?
7 P$ i+ D+ z5 v( F谢谢。# A0 B1 C5 T: |% v9 T3 r
                                                                # X2 A) a, e) p. z. Z* C- ~8 b" b
    解决方案:                                                                , W* |3 D6 B% w1 }7 `1 i0 D( C- b
                                                                首先,如果你真的想知道一组给定的数据,你应该测试它。8 m: |' v/ q. L, H" m8 {0 \* i) W; o
也就是说,有几个原因让我觉得你应该在服务器端排序。
$ C2 Y; c' h9 x. K1 h' t首先,服务器可以使用更多的硬件(多线程、多磁盘、多处理器)进行排序。这对性能有很大的影响。
. j7 C8 r, X6 Y其次,排名可能不是必要的。在某些情况下,查询实际上不需要对结果进行排序,因为它们已经被排序了。例如,结果可以根据排序索引返回。, `! A$ n% n* T
第三,内存使用问题和内存泄漏在客户端往往更为常见。(嗯,你不是说你在用。Java,所以你有点放心。)数据库服务器知道如何管理内存。' F- S- n- t: N% {9 s
第四,我认为在服务器端进行数据操作是个好主意。如果您尝试微优化每个操作,编码将变得非常复杂,有些操作在服务器上,有些操作在客户端上。请在服务器上操作,除非它与数据特别相关。) d$ V" S* \, X9 A; [
尽管如此,如果你只是为了在一个页面上演示20个项目,那就没有什么不同了。如果您愿意,可以在客户端操作。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则