问题标签 [sqlperformance]

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 投票
5 回答
4517 浏览

sql - SQL 查询大约需要 10 - 20 分钟

我有一个选择(没什么复杂的)

这个视图有大约 6000 条记录和大约 40 列。它来自 Lotus Notes SQL 数据库。所以我的 ODBC 驱动是 LotusNotesSQL 驱动。该查询大约需要 30 秒才能执行。我工作的公司使用EXCEL运行查询并将所有内容写入工作表。由于我假设它会逐个单元格地写入所有内容,因此过去最多需要 30 到 40 分钟才能完成。

然后我使用了 MS 访问。我在 Access 上创建了一个副本本地表来存储数据。我的第一次尝试是

请注意,这是伪代码。这运行成功,但又花费了 20 到 30 分钟。然后我使用 VBA 循环遍历数据并为每个单独的记录手动插入(使用 INSERT 语句)。这大约需要 10 到 15 分钟。这是我迄今为止最好的情况。

之后我需要做什么: 我有数据后,我需要按部门过滤它。问题是如果我在 SQL 查询中放置一个 where 子句(执行查询的时间从 30 秒跳到大约 10 分钟 + 写入本地表/excel 的时间)。我不知道为什么。可能是因为这些列都是文本列?

如果我们将某些列更改为整数,是否会使其在 where 子句方面更快?

我正在寻找有关如何解决此问题的建议。我的老板说我们可以采用一些基于 Java 的解决方案。这会有帮助吗?我不是 java 人,而是 ac#,也许我会说服他们也使用 c#,但我主要是在寻找有关如何减少时间的建议。我已经将它从 40 分钟缩短到 10 分钟,但希望它在 2 分钟以内。

回顾一下:

查询大约需要 30 秒才能执行

在 Excel/Access 中本地使用查询大约需要 15 - 40 分钟

需要不到 2 分钟

可以使用基于 java 的解决方案

您可能会建议其他解决方案而不是 java。

0 投票
4 回答
2178 浏览

sql-server - LINQ-to-Entities 摆脱 sp_executesql

我现在正在尝试使用Database Engine Tuning Advisor优化我的数据库,而我面临的问题是我的 SQL Profiler 跟踪显示了大量使用执行的查询sp_executesql- 而顾问无法处理这些查询。这些查询似乎来自我正在使用的 LINQ-to-Entities,所以只是好奇是否有任何方法可以让 LINQ-to-Entities 直接调用语句。

0 投票
3 回答
4413 浏览

sql-server - 如何存储查询执行计划以便以后使用

我的应用程序针对 sql server 数据库运行查询。

在许多情况下,我可以看到执行计划的好处:例如,我第一次单击按钮

第一次需要 15 秒,以后需要 8 秒。

编辑:我使用参数化查询。

所以我第二次提高了 7 秒。

现在,当我再次运行应用程序时(所以我进行了新的数据库连接),第一次需要 15 秒,第二次需要 7...

怎么可能告诉 SQL Server 存储执行计划,至少在同一天记住它们?或者,我怎样才能从已经计算好的执行计划中获益?如果不同的用户运行相同的查询,这是告诉 sql server 足够聪明以使用相同的执行计划的一种方式,即使在这种情况下 IdUser 可能会有所不同。

在软件中我有一些参数,所以可能下次执行查询会有不同的MinDate和MaxDate,但这会影响查询计划吗?

0 投票
8 回答
220637 浏览

mysql - MySQL中键、主键、唯一键和索引的区别

什么时候应该使用KEY,PRIMARY KEY和?UNIQUE KEYINDEX

0 投票
10 回答
268 浏览

sql - sql 查询的哪些方面相对而言是相对昂贵的?加入?记录数?列选择?

SELECT One, Two, Three 与 SELECT One, Two, Three, ..... N-Column 相比的成本有多大

如果您有一个将两个或三个表连接在一起并检索 100 行数据的 sql 查询,那么性能是否说明我是否应该只选择我需要的列数?或者我应该写一个查询,只是拉出所有的列..

如果可能的话,您能否帮助我了解查询的哪些方面相对而言成本相对较高?是联接吗?是拉的大量记录吗?是选择语句中的列数吗?

1 条记录 vs 10 条记录 vs 100 条记录重要吗?

0 投票
1 回答
1440 浏览

sql-server - 将数据集与 EXCEPT 组合与在 LEFT JOIN 中检查 IS NULL

我目前正在通过Microsoft SQL Server 2008 - 数据库开发(MCTS 考试 70-433)认证。在有关组合数据集的早期章节之一中,我遇到了EXCEPT(and INTERSECT) 命令。一个示例显示了如何使用EXCEPT从一个表中获取所有值,而这些值在第二个表中没有相关值,如下所示:

EXCEPT命令对我来说是新的,但是根据我今天之前所知道的,我仍然可以使用 a 轻松解决问题并通过以下方式LEFT JOIN检查连接约束:IS NULL

现在我开始想知道其中哪一个性能最好。我试图研究查询执行计划,但我不太擅长阅读这些计划,所以这并没有让我变得更聪明。对于使用 的查询EXCEPT,计划如下所示:

对于使用它的人来说,LEFT JOIN它看起来像这样:

查询中使用的表来自AdventureWorksDW2008示例数据库,因此下面我还包括了两个表的创建脚本,以防需要正确回答问题:

第二张表:

这个问题使用了一个非常具体的示例,但我也对有关何时/是否适合使用EXCEPT而不是 aLEFT JOIN和检查的一般信息感兴趣IS NULL

我还注意到,如果我尝试使用 运行第一个查询INTERCEPT,则第二个查询中的等效项将是使用标准JOINand SELECT DISTINCT DimEmployee.EmployeeKey(并且根本没有WHERE子句)。然而,在这种情况下,两种情况下的执行计划完全相同。

更新
对第二个查询的次要更新(请参阅修订历史),这导致该查询计划更加复杂。我猜想一个更大的查询计划表明一个不太理想的查询,但我仍然希望这个问题得到回答。

0 投票
3 回答
268 浏览

sql - SQL Server 2000 性能问题 - 大表

拥有一个快速接近 1100 万条记录的大表。(表中有 20 列)。

我的问题是,是否存在我应该根据表中的行数考虑的性能问题?

干杯

0 投票
1 回答
122 浏览

postgresql - 优化多个 OR 查询

我有一个数据库表,我需要验证用户是否输入了相同或部分相同的信息。

这就是我的想法

数据库布局

查询

如果任何数据匹配(是的,这将是误报),我需要旧的 rec_id。

想知道是否有更好的方法来做到这一点?

谢谢

0 投票
1 回答
4552 浏览

mysql - 将列从一个表添加到另一个表的正确 MySQL 方法

我有一个大表(约 1000 万条记录),其中包含其他较小表的几个键。每个较小的表中的键都是唯一的,但在大表中却不是。我想根据键匹配从一个较小的表中向大表中添加一列,但我不确定这样做的“正确”方法。我有一个可行的解决方案,但它需要相当长的时间(认为这可能是不可避免的),而且通常感觉这不是最佳的方法。这是我所拥有的:

这完成了工作,但它真的闻起来像我做错了。似乎至少我不需要创建表的副本来完成这项工作。有没有更直接(更有效?)的方式来做到这一点?

值得一提的是,这是针对家庭中的个人爱好项目,因此我可以随意占用机器的所有资源(因为我是唯一使用它的人)。因此,如果有任何直接的性能调整技巧可以做这样的事情,我将不胜感激(我正在 Amazon EC2 实例上对此进行试验,因为它应该比我的个人桌面更快并且具有更多内存) .

0 投票
4 回答
1630 浏览

sql - SQL 中的 Join 语句性能

我正在使用 SQL Server 2008-R2,我需要使用多个表连接。在这种情况下,当使用 WHERE 语句或将 INNER JOIN 与 ON 语句一起使用时,哪个查询具有更好的时间性能?两个语句都对多个条件使用 AND 运算符。

我想知道该问题是否还有一些相关的查询调整。

上述选项的示例代码:

1)

2)

德克萨斯州。