问题标签 [query-performance]

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 投票
8 回答
59918 浏览

sql - NULL 值如何影响数据库搜索的性能?

在我们的产品中,我们有一个通用的搜索引擎,并试图优化搜索性能。查询中使用的许多表都允许空值。我们是否应该重新设计我们的表以禁止空值进行优化?

我们的产品同时在Oracle和上运行MS SQL Server

0 投票
16 回答
101495 浏览

mysql - 删除 MySQL 中的数百万行

我最近在我正在处理的一个站点中发现并修复了一个错误,该错误导致表中存在数百万行重复的数据,即使没有它们也会非常大(仍然是数百万行)。我可以很容易地找到这些重复的行,并且可以运行一个删除查询来将它们全部杀死。问题是尝试一次删除这么多行会长时间锁定表,如果可能的话,我想避免这种情况。我可以看到摆脱这些行的唯一方法是:

  1. 编写一个脚本,将循环执行数千个较小的删除查询。从理论上讲,这将解决锁定表问题,因为其他查询将能够使其进入队列并在删除之间运行。但它仍然会大大增加数据库的负载,并且需要很长时间才能运行。
  2. 重命名表并重新创建现有表(它现在为空)。然后对重命名的表进行清理。重命名新表,重新命名旧表并将新行合并到重命名的表中。这种方式需要更多的步骤,但应该以最小的中断完成工作。这里唯一棘手的部分是有问题的表格是一个报告表,所以一旦它被重命名并且空的那个放在它的位置,所有历史报告都会消失,直到我把它放回原位。另外,由于存储的数据类型,合并过程可能会有点麻烦。总的来说,这是我现在可能的选择。

我只是想知道以前是否有其他人遇到过这个问题,如果有,你是如何在不关闭网站的情况下处理它的,并且希望对用户的干扰最小?如果我采用 2 号或其他类似的方法,我可以安排这些东西在深夜运行,并在第二天一大早进行合并,并提前让用户知道,所以这不是什么大不了的事。我只是想看看是否有人对更好或更简单的清理方法有任何想法。

0 投票
1 回答
84 浏览

sql-server - 可以使这条 SQL 语句执行得更好吗?

我有一个用于将编辑从一个表合并到另一个表的 SQL 语句。IE

真的,我只是想获取最新的编辑(通过时间戳)字段,因为这将包含所有累积的编辑。我很确定这可以做得更好,即以某种方式将SELECT max(mm.SSIS_TIMESTAMP)... 嵌套查询集成到它上面的连接中。

有什么想法吗?

0 投票
9 回答
77824 浏览

sql - 如何提高聚集索引查找的性能

我正在尝试提高运行速度非常慢的查询的性能。经过实际执行计划后;我发现聚集索引搜索占用了 82%。有什么方法可以提高Index Seek的性能吗?

指数:

表(为简洁省略了一些列):

0 投票
9 回答
152797 浏览

sql-server - SQL Server IN 与 EXISTS 性能

我很好奇以下哪个更有效?

我一直对使用有点谨慎,IN因为我相信 SQL Server 会将结果集变成一个大IF语句。对于大型结果集,这可能会导致性能不佳。对于小型结果集,我不确定两者是否更可取。对于大型结果集,EXISTS效率不是更高吗?

对比

0 投票
4 回答
611 浏览

mysql - MySQL 嵌入式 SELECT 与 JOIN

两者之间是否有明显区别:

哪一个更好?

0 投票
3 回答
1384 浏览

mysql - 如何将 MySQL 结果转换为字符串?

有一个查询:

它返回一个看起来像这样的字符串:“2,12,29,714,543,1719”。还有另一个查询:

现在那行不通了。
我只能通过单独执行这些查询来使其工作。我应该怎么做才能将其保留在单个查询中?

0 投票
6 回答
1568 浏览

sql - 投影数量对查询性能的影响

我希望提高从表中选择多个列的查询的性能。想知道限制列数是否会对查询的性能产生任何影响。

0 投票
8 回答
37602 浏览

sql-server - 从 Web 执行时查询超时,但从 SSMS 执行时超快

我正在尝试在我维护的 Web 应用程序中调试 SQL 超时的来源。我有后面的 C# 代码的源代码,所以我确切地知道正在运行什么代码。我已将应用程序调试到执行超时的 SQL 代码的行,并观察 SQL 探查器中运行的查询。

从 Web 执行此查询时,它会在 30 秒后超时。但是,当我完全按照 Profiler 中的方式剪切/粘贴查询并将其放入 SSMS 并运行它时,它几乎会立即返回。我已经将问题追溯到在网络正在使用的连接中将 ARITHABORT 设置为 OFF(也就是说,如果我在 SSMS 会话中将 ARITHABORT 关闭,它会运行很长时间,如果我将其重新打开,那么它会运行很快)。但是,阅读 ARITHABORT 的描述,它似乎并不适用......我只是在做一个简单的 SELECT,根本没有执行任何算术运算......只有一个带有 WHERE 条件的 INNER JOIN:

为什么 ARITHABORT OFF 在这种情况下会导致这种行为?有什么方法可以从 SSMS 更改该连接的 ARITHABORT 设置?我正在使用 SQL Server 2008。

0 投票
4 回答
142453 浏览

django - 从表字段中选择不同的值

我正在努力理解 Django 的 ORM。我想要做的是在我的表上的一个字段中获取不同值的列表....相当于以下之一:

(或替代)

在诉诸原始 sql 之前,我至少想以 Django 方式进行操作。例如,有一个表:

身份证,街道,城市

1,主街,赫尔

2,其他街,赫尔

3,圣经之路,莱斯特

4,另一种方式,莱斯特

5, 高街, 朗迪迪姆

我想得到:

赫尔、莱斯特、朗迪迪姆。