问题标签 [query-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
9136 浏览

sql - 如何强制 sql server 登录的 nolock 提示

有谁知道强制对某个用户发出的所有交易进行 nolock 提示的方法?我想为支持团队提供登录以查询生产系统,但我想通过对他们所做的一切强制执行 nolock 来保护它。我正在使用 SQL Server 2005。

0 投票
14 回答
10722 浏览

sql-server - 处理大型数据库

我在一个网络项目(asp.net)中工作了大约六个月。最终产品即将上线。该项目使用 SQL Server 作为数据库。我们已经对一些大量数据进行了性能测试,结果表明当数据变得太大时性能会下降,比如 200 万行(超时问题、延迟响应等)。起初我们使用完全规范化的数据库,但现在由于性能问题(以减少连接),我们对其进行了部分规范化。首先,这是正确的决定吗?另外,当数据量变得非常大时,可能的解决方案是什么,没有。未来客户增加?

我想进一步补充:

  • 200 万行是实体表,解决关系的表具有更大的行。
  • 当 data + no 时性能下降。的用户增加。
  • 在识别出大量使用的查询后进行非规范化。
  • 我们还使用了大量的 xml 列和 xquery。这可能是原因吗?
  • 有点跑题了,我项目中的一些人说动态 sql 查询比存储过程方法更快。他们已经进行了某种性能测试来证明他们的观点。我认为恰恰相反。一些频繁使用的查询是动态创建的,而其他大多数查询都封装在存储过程中。
0 投票
4 回答
274 浏览

database - 具有非常大数据集的关联表的合理查询时间是多少?

StackOverflow 播客中没有。在19 日,Joe 描述了 Fogcreek 的决定,即每个客户端都拥有一个数据库,而不是所有客户端都拥有一个数据库。这让我想到了以下几点。

  1. 假设我有1000 个用户
  2. 每个用户有100 个客户
  3. 每个客户有1000 种产品

所以这意味着我将有1000 x 100 x 1000 = 100,000,000 个产品与用户相关联。现在,如果我对一个用户及其所有客户的产品进行连接表查询,那么如果我为此目的只使用一个数据库,那么合理的查询时间应该是多少?

更新

也许我的问题不够清楚。假设我需要对上面描述的数据集进行各种时髦的查询(最小、最大、组等),是否会很慢(或没有)到拥有多个数据库策略更有意义的地步,例如. 1 DB/客户端、数据库分片等

0 投票
5 回答
1383 浏览

sql-server - Sql Server 中的提示

每个 sql 语句都需要提示吗?我们有一个 dba,他对此非常了解,并要求我们在存储过程中的每个 select 和 update 语句上提供提示。这真的有必要吗?

0 投票
2 回答
1819 浏览

sql-server - 查询计划优化器是否适用于连接/过滤的表值函数?

在 SQLSERVER 2005 中,我使用表值函数作为对大表中的子集数据执行任意聚合的便捷方式(传递日期范围或此类参数)。

我在更大的查询中使用这些作为联合计算,我想知道查询计划优化器是否在每种情况下都能很好地与它们一起工作,或者我是否最好在更大的查询中取消嵌套这样的计算。

  1. 如果有意义,查询计划优化器是否会取消嵌套表值函数?
  2. 如果没有,您建议如何避免通过手动取消嵌套而发生的代码重复?
  3. 如果是这样,你如何从执行计划中识别出来?

代码示例:

.

.

我希望样本有意义。

非常感谢您的帮助!

0 投票
3 回答
3368 浏览

sql - 来自 Joel Spolsky 文章的 SQL 问题

来自 Joel Spolsky 关于泄漏抽象的文章:

[C] 某些 SQL 查询比其他逻辑等效查询慢数千倍。一个著名的例子是,如果你指定“where a=b and b=c and a=c”,一些 SQL 服务器会比只指定“where a=b and b=c”快得多,即使结果集也是如此。是一样的。

有谁知道这件事的细节?

0 投票
1 回答
27073 浏览

optimization - postgres中的Seq Scan和Bitmap堆扫描有什么区别?

在解释命令的输出中,我发现了两个术语“序列扫描”和“位图堆扫描”。有人能告诉我这两种扫描有什么区别吗?(我正在使用 PostgreSql)

0 投票
3 回答
208 浏览

mysql - 当我将字段更改为 utf8 时,为什么我的查询需要两倍的时间?

我最初将我的字段设置为latin1_swedish_ci,我将其更改为utf8_general_ci(字段和表),然后发现我的查询从 ~1.8 秒变为 ~3.3。我在该字段上有一个索引,甚至重新创建了索引(删除然后添加)。该字段在 order by 子句中使用。

如果有问题或者这是否正常,有什么想法吗?

我正在运行 MySQL 5.0。

0 投票
9 回答
1960 浏览

mysql - 我有哪些选择可以让我的 ORDER BY 更快?

我有以下查询:

如果我删除订单,查询需要 0.005 秒。使用 order by,查询需要 1.8-1.9 秒。我有一个索引client_name

还有什么可以提高速度的?

编辑: c.id 是主键,但在 client_project 中可能有多个记录,因此每个 id 可能会导致多个记录。此外,删除 distinct 会在查询中产生 0.1 秒的差异。

补充:这是我的客户表:

使用 MySQL 5.0

0 投票
2 回答
322 浏览

php - 使用 MySQL 和 PHP 检查线程中有多少帖子的最快方法

我想知道在尝试例如检查论坛上特定线程中有多少帖子时,哪个更快。我是不是该...

(a) 使用特定线程 ID 浏览数据库中的每个帖子,并计算有多少行

或者

(b) 每次创建线程时,在线程数据库中的单独列中添加一个,然后查询该单行

谢谢。