问题标签 [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 投票
1 回答
246 浏览

mysql - MySQL关于财政年度的查询性能调整

我有一张大桌子,里面有大约 2000 万条记录。表的结构及其索引是:

我正在运行以下查询:

但是查询需要很多时间,这是我得到的解释计划:

如何提高这个查询的性能,谢谢

0 投票
1 回答
5948 浏览

sql - 比较 SQL Server 中索引视图和存储过程的性能

我最近才意识到您现在可以在 SQL Server 中索引您的视图(请参阅http://technet.microsoft.com/en-us/library/cc917715.aspx)。我现在正试图弄清楚何时从针对索引视图的查询与在缓存了执行路径的存储过程中的相同查询中获得更好的性能?

举个例子:

每次运行时日期都会有所不同,因此如果这是一个视图,我不会将其包含WHERE在视图中,而是将其作为我对视图的选择的一部分。如果它是一个存储过程,则日期将是一个参数。请注意,表中有大约 300,000 行。其中 200,000 人将满足带有日期的 where 条款。10,000 将在分组后返回。

如果这是一个索引视图,我是否应该期望从中获得比有机会缓存​​执行路径的存储过程更好的性能?还是proc会更快?或者差异可以忽略不计?我知道我们可以说“两者都试一试”,但是有太多因素可能会使结果产生错误的偏差,导致我得出错误的结论,所以我想听听更多背后的理论以及预期的结果是什么.

谢谢!

0 投票
3 回答
525 浏览

php - 使用 LIKE 运算符优化 mysql 查询以获取 10k 条记录

笔记:

所以正如我所想,真正的问题是因为我用于标记的 IN 子句。更改文本搜索的查询部分并没有太大帮助。知道如何改进查询吗?

查询在服务器上运行时耗时过长。这里 Partha S 是用户输入的搜索项。表contacts包含个人信息,tags包含类别名称和id;并且contacts2tags 表包含contactid 和tagid,其值分别类似于contacts 和tags 中的id。

更新: 根据建议,我删除了 LIKE 运算符以进行精确搜索,并在后一种情况下使用 MATCH(..) AGAINST(..) 而不是 LIKE 。虽然第一个更改确实提高了一点性能,但使用 MATCH() AGAINST() 并没有令人惊讶地改变执行时间。这是更新的查询。PS 我尝试将 MATCH(all cols) AGAINST(search item) 和 MATCH(single cols) AGAINST (search item) 与 OR 结合使用。请建议。谢谢

0 投票
3 回答
4536 浏览

mysql - 在三个不同的列上使用 MAX、WHERE 和 GROUP BY 提高 SQL 查询的速度

我正在尝试加快在大约 2000 万行的表上完成大约需要 60 秒的查询。

对于此示例,该表具有三列(id、dateAdded、name)。id 是主键。我添加到表中的索引是:

我试图运行的查询是:

日期因查询而异。

这样做的目的是在添加日期或之前获取每个名称的最新条目。

当我对查询使用解释时,它告诉我它正在使用 (id, name, dateAdded) 索引。

编辑: 从评论中添加了两个新索引:

编辑: 添加了创建表脚本。

编辑: 这是HeavyE提供的答案中的解释。

0 投票
1 回答
222 浏览

sql - postgresql 9.1中关于INDEX + ORDER BY + LIMIT + TRIGRAM的说明

桌子:

指数:

询问:

问题:

为什么它通过 ORDER BY + LIMIT 组合的索引而不是当查询仅包含 ORDER BY 时?

当然,使用索引会提高查询速度

我发现的唯一解释是: http ://www.postgresql.org/docs/9.1/static/indexes-ordering.html

但它缺乏细节

编辑#1:

带有 LIMIT 的查询计划:

没有限制的查询计划:

0 投票
1 回答
1148 浏览

sql - sys.dm_exec_procedure_stats - 我是否正确解释它

如果下面使用 dm_exec_procedure_stats 的查询的 [Total Duration (s)] 列给了我查询返回结果所需的平均时间,任何人都可以确认吗?我担心这只是这些查询返回结果所需时间的一个因素,因为它们看起来有点低。

感谢所有花时间看的人。

任何帮助或建议将不胜感激

0 投票
3 回答
103 浏览

sql - sql query search into two tables, performance issue

I have two tables (I'll list only fields that I want to search)

MySQL version: 5.0.96-community

The Details table can have multiple rows from the same client.

I need to search into those two tables and retrive the ids of clients that match a search value.

If i have a search value "blue" it has to match CLientName (ex the Blueberries Corp), or the Details in the second table (ex "it has a blue logo)

The result should be a list of client id's that match the criteria.

If I make a query for one table, it takes a decent time

But if I try to join those two queries it takes ages.

My questions(s)

  1. What's the best way of doing what I need here, to get a list of ID-s based on the search result from both tables

  2. What to change to improve search performance in the Details table, I know that %..% is not fast, but I need partial matches too.

Edit (based on the answers)

It returns a list of IDs from both tables filtred by the search value.

Edit 2: final query

And with that list of ids I can filter the client table, to get only the clients that are in boths tables based on their id

0 投票
1 回答
2777 浏览

sql - 使用 nvarchar 作为外键怎么样?

到目前为止,我的外键一直是 uniqueidentifiers 或 int。

如果我使用 nvarchar 字段作为外键,它会对性能产生负面影响吗?我还有其他需要注意的事项吗?

0 投票
1 回答
345 浏览

sqlperformance - 更多逻辑读取,但查询执行时间更短

情况一

情况2

情况 1查询在4 秒内执行,使用左连接

&

情况 2查询在 3 秒内执行,使用外部应用,但逻辑​​读取非常高。

那么从性能上来说什么是好的呢?

0 投票
3 回答
667 浏览

sql - 使用覆盖 WHERE 子句的过滤索引上使用哪些键列?

我正在创建一个过滤索引,以便 WHERE 过滤器包含完整的查询条件。有了这样的索引,似乎不需要键列,尽管 SQL 要求我添加一个。例如,考虑下表:

表上的查询查找要处理的新发票,即:

因此,我可以使用过滤索引调整这些查询:

我的问题:关键列应该IX_Invoice_IsProcessed_IsInvalidated是什么?大概没有使用键列。我的直觉使我选择了一个较小的列,并使索引结构保持相对平坦。我应该选择表主键 ( Id) 吗?过滤器列之一,还是两者都?