V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gowl
V2EX  ›  程序员

SQL Server 有什么地方是不可被 PostgreSQL 代替的呢?

  •  
  •   gowl · 2023-07-04 05:19:09 +08:00 · 4389 次点击
    这是一个创建于 511 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请只考虑科技层面和实际使用中的区别。

    28 条回复    2023-07-05 10:42:41 +08:00
    netnr
        1
    netnr  
       2023-07-04 06:03:52 +08:00 via Android
    pg 不能通过排序规则忽略大小写比较
    gowl
        2
    gowl  
    OP
       2023-07-04 06:26:08 +08:00
    @netnr 在 pg 里可以这样吧:

    SELECT name FROM users ORDER BY lower(name);
    Worldispow
        3
    Worldispow  
       2023-07-04 06:29:05 +08:00 via Android
    客户端 ui ,商业支持等等
    Radeon
        4
    Radeon  
       2023-07-04 07:01:05 +08:00   ❤️ 2
    PG 不能对列重排序,只能改 View 的列顺序
    gowl
        5
    gowl  
    OP
       2023-07-04 07:01:15 +08:00
    @Worldispow pg 也有不错的商业客户端的
    gowl
        6
    gowl  
    OP
       2023-07-04 07:09:20 +08:00
    @Radeon 你说的对~另外这个在实际使用中应该不是问题
    acctv2
        7
    acctv2  
       2023-07-04 07:41:58 +08:00
    EFCORE 对 SQLSERVER 支持最好?
    klo424
        8
    klo424  
       2023-07-04 08:15:35 +08:00
    我挺喜欢用 pg 的,但老项目用的 sql server 迁移很费劲。
    nikenidage1
        9
    nikenidage1  
       2023-07-04 08:28:52 +08:00
    只要你愿意付费,你使用中出现的任何问题,都可以开 case 让微软来帮你处理
    liantian
        10
    liantian  
       2023-07-04 08:44:06 +08:00   ❤️ 1
    说个不是很深技术层面的...

    如果单位长期使用 Active Directory ,并打算用 Active Directory 横跨办公和生产做统一验证。

    那么基于登录 Active Directory 的用户的 Group 分配数据库权限,似乎 Sql Server 很方便,其他数据库配置极难。难到没见过例子。
    root01
        11
    root01  
       2023-07-04 08:56:13 +08:00
    金蝶:你在说什么?
    makelove
        12
    makelove  
       2023-07-04 09:09:03 +08:00
    @gowl pg 里排序里加表达式难道不会搞成全表扫描?
    netnr
        13
    netnr  
       2023-07-04 09:09:29 +08:00
    #2 你这个是排序,还有转小写有性能问题

    数据库一般都有 排序规则+字符集 两个属性,比如 MySQL ,SQLServer 合一起叫排序规则,支持几百上千种(分了很多语种),像 ClickHouse 就无视字符集

    以前我发过一篇主题,提到 pg 不支持排序规则忽略大小写比较,像我这边是用 EFCore 生成包含搜索是 like ,在 pg 里面是区分大小写搜索的,需要用 ILike ,得用 EF 对象的扩展来写,变得不通用,当然这种情况是对我,我是认可用一种数据库,就深挖用精强关联的,只是我现在是倾向弱关联
    nothingistrue
        14
    nothingistrue  
       2023-07-04 09:22:39 +08:00
    只考虑科技层面和实际使用中的区别,那啥都是可替代的。当选择软件基础设施的时候,风险和成本等商业层面才是最主要的考虑范畴。基本上来说,只要考虑了付费的——可以甩锅的,那么免费的——没法甩锅的——就一概是不会再考虑的。
    jiulang
        15
    jiulang  
       2023-07-04 09:23:15 +08:00
    性能。性能。性能。
    wanguorui123
        16
    wanguorui123  
       2023-07-04 09:24:45 +08:00
    授权费
    koloonps
        17
    koloonps  
       2023-07-04 10:03:48 +08:00
    @root01 金蝶也在转 Java 和 MySQL 了
    xiangyuecn
        18
    xiangyuecn  
       2023-07-04 10:06:44 +08:00   ❤️ 1
    pg 的加引号的 '表名' '字段名' ,是反人类设计
    dog82
        19
    dog82  
       2023-07-04 10:14:14 +08:00
    @jiulang 请问是 pg 的性能好还是 sql server 的性能好?
    beyondex
        20
    beyondex  
       2023-07-04 10:22:28 +08:00
    pg 能在 sql 里定义变量吗? 像 sql server 可以
    declarer @var1 int;
    set @var = 1

    我查了一圈,也问了 gpt ,pg 貌似只能在函数里定义变量???
    jiulang
        21
    jiulang  
       2023-07-04 13:10:49 +08:00   ❤️ 1
    @dog82 sqlserver 性能好
    lujiaxing
        22
    lujiaxing  
       2023-07-04 13:15:48 +08:00
    @Worldispow 客户端 UI, Navicat Premium 了解一下? 世界上还有比 Navicat 更好用的客户端?
    lujiaxing
        23
    lujiaxing  
       2023-07-04 13:16:43 +08:00
    @xiangyuecn 这是规范. 就算是 SQLServer 里也要求加的. 虽然 SQLServer 不加也能执行.
    Worldispow
        24
    Worldispow  
       2023-07-04 13:23:30 +08:00 via Android
    @lujiaxing Navicat 虽然很优秀,但他不是一个管理工具,而是一个数据库操作工具。

    数据库管理工具是给 dba 用的,数据库操作工具是给开发人员、业务人员用的。
    lambdaq
        25
    lambdaq  
       2023-07-04 13:29:00 +08:00   ❤️ 1
    我对 pg 的怨念是 update where 不能加 limit
    dw2693734d
        26
    dw2693734d  
       2023-07-04 14:16:19 +08:00 via iPhone
    我喜欢 psql 的 citus
    vopsoft
        27
    vopsoft  
       2023-07-05 09:17:22 +08:00   ❤️ 1
    性能
    flyingfz
        28
    flyingfz  
       2023-07-05 10:42:41 +08:00   ❤️ 2
    @klo424 看看这个

    Babelfish for PostgreSQL is an open source project available under the Apache 2.0 and PostgreSQL licenses. It provides the capability for PostgreSQL to understand queries from applications written for Microsoft SQL Server. Babelfish understands the SQL Server wire-protocol and T-SQL, the Microsoft SQL Server query language, so you don’t have to switch database drivers or re-write all of your application queries. With Babelfish, applications currently running on SQL Server can now run directly on PostgreSQL with fewer code changes.

    https://babelfishpg.org/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1136 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:14 · PVG 03:14 · LAX 11:14 · JFK 14:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.