有很多行的表上的基本选择非常慢

Posted

技术标签:

【中文标题】有很多行的表上的基本选择非常慢【英文标题】:Basic Select on table with lots of rows is very slow 【发布时间】:2014-02-10 20:11:53 【问题描述】:

我目前正在设置 sql server 和 geoserver,以便在客户端 Web 浏览器上使用 openlayers 呈现我自己的地图。我遇到的问题是我的 SQL Server 数据库包含大量道路(德克萨斯州的每条道路),并且表上的简单选择需要 FOREVER(几乎 2 分钟,有 2,348,638 行)。有没有人有任何建议或建议可以用来加速此查询,以便我的地图服务器不需要一百万年来为客户端呈现地图图块。谢谢

【问题讨论】:

如果您希望任何人有机会帮助您,您应该发布您的 SQL 和表结构。 您是否选择了所有列和所有行?为什么?有人真的会有效地消耗所有 200 万行,以及每条道路的每一个属性吗?您是否也在另一台机器上从 Management Studio 运行此查询?如果是这样,您需要考虑通过网络传输 2+ 百万行,然后让应用程序渲染它们会导致一些缓慢。为什么不尝试专注于解决在对表运行真实、有意义的查询时出现的性能问题? 在我看来,由于道路并没有真正改变太多,您应该考虑预先实现地图图块等。 你有任何有用的链接来预先实现地图图块吗? 因为我们什么都不知道,我假设你没有索引你的搜索过滤列,这迫使 SQL Server 每次都进行全表扫描。这是我要研究的第一件事。当然,如果您可以发布表的示例定义,以及您用来从中选择数据的查询,这将大大帮助我们帮助您。 :) 【参考方案1】:

与您的其他 question 相同,在部分呈现时:索引您的数据。几何字段和您可能过滤的任何其他字段的索引。

【讨论】:

以上是关于有很多行的表上的基本选择非常慢的主要内容,如果未能解决你的问题,请参考以下文章

大表上的第一次查询调用速度非常慢

bigquery - 小表上的慢查询

Informix 查询慢

在现有的大型表上创建列存储索引的最有效方法?

获取ajax内容的表上的数据表

小表上的仅索引扫描非常慢