问题标签 [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.
mysql - 我的 SQL 查询非常慢,有 50K+ 条记录
我有一个名为 links 的表,其中有 50000 多条记录,其中三个字段的索引顺序为link_id
, org_id
, data_id
。
这里的问题是,当我使用 group by sql 查询时,加载需要更多时间。
查询是这样的
该表有近 20 多列
是否有任何解决方案可以加快查询访问速度。
sql - 如何加快执行为超过 458,000 条记录生成类别面包屑的 sql 查询?
我在搞乱嵌套集层次模型,并有一个名为 CategoryNest 的类别表,其中包含字段 CategoryID int identity、CategoryName nvarchar(100)、L int、R int、CreatedOn datetime、UpdatedOn datetime。
查询工作正常,它会生成所需的输出,但在使用 458,000 条记录进行测试时,需要一个多小时(注意:查询执行已取消)。
编辑:应用我编辑的查询后,结果必须更快,但我仍然愿意接受进一步加快速度的建议。
我想知道是否有办法优化此查询以在几秒钟而不是几小时内获得结果。
编辑:没有更多的时间,解决了这个问题,但仍然对加快速度的建议持开放态度。
谢谢你。
sql - SQL 提示在执行前将整个表加载到 RAM 中?
我在 OLAP 环境中的一些非常大的表上运行一些聚合查询。我目前受到 200 MB/s 的磁盘 IO 的限制。
我在具有 92 GB RAM 的机器上执行这些查询。是否有任何 SQL 提示可以写入我的查询,基本上告诉 SQL 在执行之前将整个表加载到 RAM 中?
就像是:
使用 (ramdisk) 从 myTable 中选择 *
我正在使用 MS TSQL。
sql - 分区表,但基于多列组合在一起
我有一个有趣的问题是将表分成组。我有一群游客 - 每个人都说一种语言和/或是一个家庭的一部分。我需要将表格分成几组,但我想让家人和语言相似的人聚在一起。
假设我想将游客分成最多 3 人的组(如果组必须更大,这是可以接受的)。该解决方案不必太聪明以至于完全填满所有组,但我正在尽最大努力。
输入:
期望的结果:
第 1 组由所有使用 1 语言的人组成,包括一位不能被排除在外的家庭成员。
第 2 组由两名家庭成员 (5, 6) 和一名随机成员 (9) 组成,组成 3 人组。
第 3 组由两个相同语言的人 (7, 8) 组成
我做了什么:
问题
是否有更好的方法来对表进行分区,但根据多列将行分组在一起?
sql - 如何改进以下具有自联接的 SQL
进行选择后,我正在对数据进行自连接和不同的操作。我不确定是否有更好的方法来编写此查询。你能建议吗?
下面是查询和解释计划输出。
计划:
- 我编辑了上面的 SQL 以删除自连接和不必要的分组。
- 我只基于连接对 primary_secondary 行进行分组。
- 在主要和次要之间,我正在决定应该插入次要的主要帐户。
这给出了相同的结果。我想知道这是否可以进一步改进。
计划:
sql-server - 为什么查询显示为挂起任务状态和 LCK_M_X 等待类型
我正在使用 C# 4.0 开发 winform 应用程序,后端 SQL SERVER 2012。有时,我的软件似乎挂起,因为查询变得挂起,因为一个查询在挂起模式下显示在活动监视器中,这个挂起的查询成功运行了几次但有时会出现这个问题。
活动监视器显示:
任务状态:暂停
命令:更新
应用程序:.net SqlClient 数据提供者
等待时间:5673610.....(不限)
等待类型:LCK_M_X
等待资源:keylock hobtid=72057594058768384 dbid=14 id=lock2dbc30880 mode=X associatedObjectId=72057594058768384
查询状态变为挂起的原因是什么。
我怎样才能阻止它被暂停?
sql - SQL: WHERE IN () 中的项目顺序是否重要?
WHERE IN 子句中值的顺序是否重要?(如果这很重要,这在 Firebird SQL 上)
比如:
提供性能提升超过
mysql - 关于 WHERE 子句条件顺序的性能优势
考虑 3 个表(*
用于主键,+
用于外键):
数据:
用户:
航班:
预订:
以下查询将获取旅行的乘客列表2013-05-06
:
我的问题是:
SQL 引擎如何处理 WHERE 子句?参考上面的查询,是不是先用r.userid=u.id将r和f组合成临时数据表T1,然后r.flightid=f.id把T1和f组合成另一个临时表T2,最后过滤departmentData在T2?
如果子句更改为:
WHERE f.departureDate='2013-05-06' AND u.id=f.id AND r.userid=u.id AND r.flightid=f.id
在这种情况下 f.departureDate='2013-05-06' 会减少行以形成临时表吗?
sql - 案例表达式的 Oracle 视图逻辑或性能调整
我编写了一个视图逻辑来根据要求提取数据。我需要建议或解决方案来提高视图逻辑的性能。
表:
我的观点:
“MYTABLE”将有数百万的记录。因此,视图逻辑成为生产中最大的性能打击。我有 STYPE、SQID、SNAME、CCID1、CCID2、CCID3 的索引。但是还是很慢...
执行时间需要 105 秒,现在!!
请建议我如何提高性能...
更新:请不要建议MaterializedView
。
谢谢!
sql - SQL 查询优化:花费大量时间
我正在使用以下查询来检索一组订单:
该查询返回 4323 的结果,并且执行速度足够快。
但是我必须设置另一个条件,使其仅在另一个表 DiscarderOrders 中不存在时才返回,为此我在查询中添加了一个额外的条件:
上面的查询花费了很多时间,并且一直在运行。我可以对查询做些什么以使其快速执行吗?还是我需要先执行第一个查询,然后通过拍摄另一个查询根据条件进行过滤?