问题标签 [query-tuning]

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 回答
8478 浏览

sql - 如何避免连接过多?

我希望您能帮助我讨论如何使用通用方法避免过多的连接。对此有一般规则吗?

目前,我有一个非常复杂的查询,它连接了 11 个表,性能很差(即使有索引和更新的统计信息)。使用 Entity Framework Profiler,我收到了减少连接数量的建议,而是执行几个单独的查询:link

每个连接都需要数据库执行额外的工作,并且查询的复杂性和成本随着每个额外的连接而迅速增长。虽然关系数据库已针对处理连接进行了优化,但执行多个单独的查询通常比执行包含多个连接的单个查询更有效。

我应该如何修改以下示例以获得更好的性能?

0 投票
0 回答
100 浏览

sql - 调整返回 REF CURSOR 的 SQL 查询

我在函数中使用引用游标来返回值。这个函数被递归调用不同的输入值。

我的包定义如下。

我的功能如下。

如果我不在游标的 select 语句中使用并行提示,则查询性能非常差,并且对于多个递归调用,查询几乎需要 8 小时到 24 小时,具体取决于数据。

使用并行提示查询的性能得到提高,完成运行需要 1.30 小时。但它需要 250GB 的 TEMPSPACE。

您能否建议我调整此查询的解决方案。

0 投票
0 回答
80 浏览

sql - 带有数据加载的计划选择查询在 oracle 中执行缓慢

数据库 - Oracle 11g

我们有一个包含 3000 万条记录的表 TB_ETD_NON_MKTS_TRANS_OP

我们在 REPORTING_PARTY、REPORTING_TIMESTAMP 上有索引。

我们正在执行查询

解释计划输出如下

0 投票
1 回答
342 浏览

sql - DB2:使用标量函数提高 SQL 查询的性能

我有一个大查询,我正在尝试进行顶级优化。我想改变的条件之一如下所示。即我正在尝试删除标量函数。

当前的:

在检查了解释计划后,我看不到有太大的改进。实际上估计成本从 4532.380859 到 4532.601074

任何建议都会有所帮助。

0 投票
1 回答
209 浏览

postgresql-9.4 - PostgreSQL 9.4 查询调优

我有一个运行速度太慢的查询。

该函数sysdate()返回没有时区的当前系统时间戳,last_day()返回代表该月最后一天的时间戳。我创建这些是因为 Hibernate 不喜欢 Postgres 转换符号。

问题是规划器在有索引的地方进行全表扫描。以下是上述查询的解释计划:

请注意,规划器选择在最大的表上执行非常昂贵的全表扫描 -ip_address_usage_histories并且vm_ip_address_histories. 我尝试将配置参数更改enable_seqscan为关闭,但这使问题变得更糟,总执行时间达到 63 秒。

以下是上述表格的描述:

 

Postgres 似乎没有指导计划者的查询提示。我也尝试了 from 子句inner join ... on ...语法,但这也没有改善。


更新 1

我没有尝试用标准函数替换此函数,因为据我所知,Postgres 没有返回每月第一天的函数。

0 投票
1 回答
42 浏览

sql-server - 优化特定表的查询

我有一张桌子,我正在寻找一种方法来提高它的性能。下面是要执行的查询列表。

您能否帮我重写下面的查询并向表中添加索引以提高其性能?

0 投票
3 回答
72 浏览

sql - 如何调整以下查询?

这个查询给了我想要的结果,但我不能每次都运行这个查询。这 2 个循环让我付出了代价。所以我需要实现类似视图的东西。但是逻辑涉及临时表,视图中也不允许这样做.so,是否有任何其他方式来存储此结果或更改查询,以减少我的成本。

图 1 图 2

0 投票
0 回答
361 浏览

sql-server - 在 SSMS 中以编程方式检索 SET STATISTICS PROFILE ON 以进行进一步分析

通过 Management Studio 执行 T-SQL 查询时,我可以使用文本格式以漂亮的格式SET STATISTICS PROFILE ON捕获统计信息和查询执行计划。

如何在执行存储过程后收集查询执行计划,以便以编程方式对其进行分析,而不是在 SSMS“消息”选项卡中进行可视化分析?

我可以使用SET SHOWPLAN_ALL ON,但我想看到实际计划而不是估计的计划,它有同样的问题:如何自动获得结果?

我也可以从 DMV 获得 XML 计划,但我想知道如何获得文本格式的计划。

我在这里找到了非常相似的帖子,但没有

这是我称之为“漂亮的文本格式”的示例: |--Nested Loops(Inner Join, OUTER REFERENCES:([AdventureWorks].[Person].[Address].[AddressID])) |--Filter(WHERE:(STARTUP EXPR(suser_sname()=CONVERT_IMPLICIT(nvarchar(4000),[@2],0)))) | |--Index Scan(OBJECT:([AdventureWorks].[Person].[Address].[IX_Address_StateProvinceID])) |--Clustered Index Seek(OBJECT:([AdventureWorks].[Person].[Address].[PK_Address_AddressID]), SEEK:([AdventureWorks].[Person].[Address].[AddressID]=[AdventureWorks].[Person].[Address].[AddressID]), WHERE:([AdventureWorks].[Person].[Address].[City]=N'Snohomish') LOOKUP ORDERED FORWARD)

0 投票
2 回答
5012 浏览

oracle - 如何调整使用 DBLINK 的查询

我担心的是,我有一个远程视图 abc@DBLINK 和一个本地表 xyz。我需要映射一个远程视图和一个本地表,并从 abc@DBLINK 视图中获取少量数据并插入到其他一些本地表中,比如 pst。IE

有人可以向我提供任何建议,我可以如何更快地完成这项任务?请注意 abc@DBLINK 包含大量数据,并且索引存在于本地表 col1 和 col2 上。

0 投票
1 回答
788 浏览

sql-server - 使用过滤统计的案例

我正在查看以下链接中的过滤统计信息。

http://blogs.msdn.com/b/psssql/archive/2010/09/28/case-of-using-filtered-statistics.aspx

数据严重倾斜,一个区域有 0 行,其余都来自不同的区域。以下是重现该问题的完整代码

我的问题是我们在两张桌子上都有以下统计数据

表区域:

餐桌销售:

1.为什么下面这些查询的估计出错了

2.当我按照作者创建过滤统计信息时,我可以正确看到估计,但是为什么我们需要创建过滤统计信息,我怎么能说我需要过滤统计信息来进行查询,因为即使我创建了简单的统计信息,我也得到了相同的结果。

迄今为止我遇到的最好的 1.Kimberely tripp 歪曲统计视频
2.Technet 统计白皮书

但仍然无法理解为什么过滤的统计数据在这里有所作为

提前致谢。 更新:7/4

在马丁和詹姆斯回答之后改写问题:

1.除了kimberely脚本还有什么方法可以避免数据偏斜
,另一种估计方法是计算一个值的行数。

2.您是否遇到过任何数据偏斜问题。我认为这取决于大表。但我正在寻找一些详细的答案

3.我们必须为 sql 扫描表以及某些阻塞有时会在触发更新统计信息时下降的查询承担 IO 成本。在维护统计信息时,您是否看到除此之外的任何开销。

原因是我也在考虑基于 DTA 输入的几个条件创建过滤统计信息。

再次感谢