×

Loading...

不要用复杂function的query, performance 差。create temp table 来绕过function, performance 还好,将来维护的人也容易。

Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术 / 怎么没有个像 Java 那样的通用 SQL? 干到临晨写Oracle的,再写一套给DB2的,那些 DataType,Function,CRUD 咋的有拉么多不一样? ~ 你们都是咋整的
    • 不会是把 business logic 都写进 SP 了吧?要是简单 CRUD,也许找个 ORM 可解?
      • DataType,Function 都不一样,不能简单地用SP来解决。只能用 SQL,没 app server。
    • 新卡周末加班两倍薪水?
      • 没有了,为自己做些东西。
        • db2已经完了,不要license fee,客户也不用,大部分orm都支持不好,你不如给sql server写一套。不过这些都过时了,cloud db是主流
          • 好像是,还有觉得 sql server 最 flexible,不知道是不是错觉?:)
            • 是错觉
    • 没有通用SQL?听说过ANSI SQL吗?照它的标准写,所有DB通用。
      • 许多 advanced functions 那里没有,没有一些较复杂的统计计算功能,像是row和row之间的:)
        • 不要用复杂function的query, performance 差。create temp table 来绕过function, performance 还好,将来维护的人也容易。 +1
          • 说到这想了想,甲骨文也就是decode 不合ansi 标准,不记得别的function有什么问题
            • 谢谢,你是DB专家:)
        • 不知道你说得复杂的统计计算功能是什么,但是几乎可以确定ANSI SQL 2003标准里的window function。主流的数据库只要不是太老都支持
          • 嗯, schema 和 existing data 不能变,像是 DB2 有 TIME, Oracle 没有,还有要用到不少 data (type)conversion, 及像是 LEG, LEAD 一类的 functions.
    • Many years ago, the system I participated used ANSI SQL, it fit any DBs.
    • 最烦的就是数据库了,能不用就不用,用Entity Framework一类的ORM把需要的东西load进内存处理,完了在存回去,数据库就是存数用的