AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 75261
Accepted
LowlyDBA - John M
LowlyDBA - John M
Asked: 2014-08-29 13:22:51 +0800 CST2014-08-29 13:22:51 +0800 CST 2014-08-29 13:22:51 +0800 CST

用于 GIS 数据的 PostGIS 与 SQL Server

  • 772

所以我最近开始在一家新公司工作,并且有很多 ArcGIS 用户似乎非常热衷于使用 PostGIS 实例来为我们的客户提供一些数据。虽然我对此没有意见,但我们是一家 95% 的 SQL Server 和 5% 的 Oracle 商店。我们当前的内部 GIS 在 SQL Server 上运行,我还没有听到任何抱怨。

我知道自 2012 年起 SQL Server 具有许多改进的空间/几何功能,但是 PostGIS 中是否有任何杀手级功能值得进入新平台?我试图研究它,但找不到任何真正深入的东西,或者这不完全是偏见。

我想为他们提供最好的工具来完成他们的工作,但也必须权衡这样一个事实,即我将从一开始就学习 Postgres/GIS,这本身就是一个完整的旅程。

sql-server database-recommendation
  • 3 3 个回答
  • 14348 Views

3 个回答

  • Voted
  1. Best Answer
    TechJohn
    2014-09-19T09:58:47+08:002014-09-19T09:58:47+08:00

    我使用过 Postgres 和 SQL Server。我发现 Postgres 在 GIS 功能上更胜一筹。虽然我将在下面简要详细介绍我的发现,但我建议这样做:给自己一个简短但合理的时间段来回顾你所知道的不熟悉的解决方案,并牢记特定的目标。例如,可能需要 2 周的时间来安装和学习当前正在使用的某些特定功能。如果您发现在该时间段内卡住或缺乏功能,那么您知道它不适合您。这是一项研究投资,可以拓宽您的视野并帮助您意识到您可能错过了以前不知道的东西,或者只是确认您当前的课程是正确的。

    就数据库而言,我发现 Postgres 的学习曲线更短、更浅。文档简直令人难以置信。SQL Server 确实有相当多的文档,但我发现很多文档很难阅读,而且没有足够的示例和教程。

    PostGIS vs SQL Server Spatial 在文档方面与上述类似,但 PostGIS 在功能上击败了 SQL Server Spatial。例如,谷歌地图,以及在较小程度上的必应地图,最近在他们的地图 API 中添加了完整的 geoJSON 支持。好吧,PostGIS 可以使用ST_AsGeoJSON()轻松地直接从数据库查询中返回 geoJSON 结果。然后可以将此 geoJSON 结果直接传递给任何可以理解 geoJSON 的对象。SQL Server 要求您使用额外的库和处理,或者使用 ogr2ogr。此外,PostGIS 有超过 300 个函数可用于数据进出数据库的转换,而 SQL Server 则只有 70-100 个。

    • 24
  2. N8allan
    2020-04-03T12:15:13+08:002020-04-03T12:15:13+08:00

    在使用了这两个系统的 GIS 功能后,我建议如下:

    • 如果您主要是希望存储和查询几何图形,它们的功能是相当的。
    • 如果您想执行栅格操作,PostGIS 是您唯一的选择,无需第三方插件,例如 ArcGIS 的 ST_Raster。SQL Server 将存储图像,但如果您想要进行光栅操作或查询,请忽略它。
    • 有些人会对此提出异议,但总的来说,我发现 SQL Server 更快、更一致。如果所有其他条件都相同,那么对于生产运行时,我更喜欢它。
    • PostgreSQL 有一个更丰富、更优雅的 SQL 方言和一个较少受任意限制的查询处理器。在语言的力量和优雅方面,没有可比性,pgSQL 让 TSQL 看起来像孩子的潦草。我考虑写一本关于 Transact SQL 有多糟糕的书,作为学习良好语言设计的一种手段。:-)
    • 4
  3. Chris Travers
    2014-08-29T19:23:45+08:002014-08-29T19:23:45+08:00

    在我看来,哪个数据库更好并不是您主要关心的问题,相反,您有两个不同的考虑因素相互矛盾,即业务知识与客户需求。最终,这将是一个商业决策,而不是技术决策。

    正如 Max 在评论中指出的那样,显然存在机会成本。没有办法解决这个问题。如果您打算使用 Postgres 路线,请考虑以良好的咨询协议、经验丰富的 dba 或两者兼而有之的形式获得一些帮助。

    如果您的用户想要 PostGIS,那么这可能是一个净赢。通过转换,您将销售多少服务?在机会成本方面值得吗?这些决定不是根据您认为哪个数据库更好或根据技术规格做出的决定,而是根据学习曲线和市场营销。

    • 1

相关问题

  • 推荐使用哪些数据库作为嵌入式数据库?

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve