首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多连接的性能

多连接的性能
EN

Stack Overflow用户
提问于 2011-02-11 18:02:08
回答 5查看 4.2K关注 0票数 0

你好,紫罗兰,

我需要查询具有许多/复杂空间条件的对象。在关系数据库中,转换为多个联接(可能是10+)。我对这个业务很陌生,我想知道是使用2008 R2或Oracle11g,还是使用基于文档的解决方案(如RavenDB ),还是简单地使用一些空间数据库.

有什么想法吗?

问候

更新:谢谢大家的回答。有人会选择文档/空间数据库吗?我的数据库将包含数千万至数十亿条记录。大多是只读的。几乎没有更新,除非在输入错误时。隔夜插入而不那么频繁。连接表是预先预测的,但自联接(表自身多次连接)的数量不是。这类查询的一小页结果将在一个高度互动性的网站上查看,因此响应时间至关重要。对于如何在MS 2008 R2或Oracle11g上执行此操作,有任何预测吗?我还担心通过增加更多的服务器来提高性能,哪个服务器的扩展更好?PostgresQL怎么样?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-02-11 23:22:29

建立和测试。

只有这样才能知道你的想法是否行得通。有免费版本的Oracle、SQL Server和Teradata可供下载。PostgreSQL是免费的,就这样。

数据库设计帮助可能不是免费的。SQL性能比任何其他单一原因都更容易受到设计不良的影响。

我昨天做了一个测试(概念的证明)。天在我的脑海中一起运行),在20个表上有5000万行,自然键(没有标识号),20个左连接,中间访问时间为40毫秒。使用一台带有慢速磁盘和2G RAM的普通台式计算机。

编辑:似乎也有一个免费的,单服务器版本的格林梅,它只受限于两个CPU套接字,对CPU核心没有限制。数据库大小也没有限制。我觉得有必要和几兆字节的人玩。

票数 4
EN

Stack Overflow用户

发布于 2011-02-11 18:05:34

在实际应用程序中,在一组表上执行10+连接比您可能认为的要常见得多。内部连接和外部连接的结果是不同的,但是我不会太担心,除非您要加入的数据量变得非常大。数据库是为处理集合而优化的。

示例:

就在昨天,我编写了一个执行13个内部联接的查询。它在不到一秒钟的时间内在50,000+记录上执行。

票数 3
EN

Stack Overflow用户

发布于 2011-02-11 18:10:38

同意,与其说连接是问题所在,不如说是查询的数据量。虽然我承认在使用more 2005、more 2008 R2以及Oracle10g和11g的环境中工作,但在运行大型查询时,我们的MS数据库似乎更容易出现死锁。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4972444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档