问题标签 [sql-optimization]
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.
sql - SQL(任何)请求了解查询优化
由于大量信息被连接在一起,我的查询特别慢。但是,我需要以 id in 的形式添加 where 子句(从表中选择 id)。
我想知道以下是否有任何收获,更紧迫的是,它是否会给出预期的结果。
作为替代方案:
更新:MySQL 不能更具体,抱歉表 a 实际上是 7 个不同表之间的连接。* 用于示例
编辑,b 没有被选中
tsql - IN 或 OR 哪个更快?
在 T-SQL 中什么更快?
或者
在我的例子中,x、y 和 z 是存储过程的输入参数。而且我正在尽我所能使我的 DELETE 和 INSERT 语句的性能。
sql - 使用内部连接和 order by 优化 sql 查询
我正在尝试优化以下查询但没有成功。知道在哪里可以索引它以防止临时表和文件排序吗?
sql-server - SQL Server sproc 查询优化
我有一个应用程序可以为报告生成数据,如下所示:
查询有时非常长,我想优化它们。
我在服务器上没有运行查询分析器的权限(我读到最好不要使用它的建议)。最长的存储过程需要大约 35 秒才能执行。
仔细阅读,高查询优化要避免的事情是:
- 选择 *
- 存在
- 清楚的
- 游标
- 有
我对手头的任务有几个问题:
- 通过将 Select * 更改为 Select colA, colB ... ,我看到了多少差异?真的值得麻烦吗?
- 如果存在(...),我该如何优化?if(Select Count(query) > 0) 是一个很好的优化吗?
- 如果我真的要返回表中的所有列,可以使用 Select * 吗?
我不想发布这些查询,因为它们又长又可怕,但是您还能提供哪些其他建议?我正在尝试尽可能使用可重复使用的函数和临时表来减轻我的大脑和服务器上的压力。
mysql - 有没有人成功地使索引合并为 MySQL 工作?
设置:
有什么我想念的吗?
更新
版本:
有没有人成功地使索引合并为 MySQL 工作?
我很高兴在这里看到成功的故事:)
mysql - 如何在 MySQL 中有效地(不使用子查询)从最大的 N 条记录中选择一条随机记录?
上面每次都需要创建一个临时表,效率不高,不符合条件。
如何正确地做到这一点?
mysql - 如何在 MySQL 中有效地选择随机记录?
以上不合格,我应该如何正确地做到这一点?
更新
似乎使用答案中提到的解决方案仍然无济于事:
rdbms-agnostic - 业余爱好者的数据库优化技术
我们能否得到一份基本优化技术的列表(从建模到查询、创建索引、视图到查询优化)。最好列出这些,每个答案一种技术。作为一个爱好者,我会发现这非常有用,谢谢。
为了不太模糊,假设我们正在使用主流数据库,例如 MySQL 或 Oracle,并且该数据库将包含大约 10 个表中的 500,000-1m 左右的记录,其中一些具有外键约束,全部使用最典型的存储引擎(例如:InnoDB for MySQL)。当然,还定义了诸如 PK 之类的基础知识以及 FK 约束。
sql-server - 使用 SQL/XML 优化数据库查询。推荐资源?
这个问题既是理论问题,也是实践问题。任何表明对优化查询有用的资源的结果将不胜感激。
有一个大型 SQL 数据库,其中存储了大量存储在 SQLXML 字段中的数据。直接查询 XML 不够快。
我看过一些关于优化 SQLXML 的 MSDN 文章(即http://msdn.microsoft.com/en-us/library/aa902661(SQL.80).aspx),我知道索引可搜索的 xml 字段会增加搜索速度。
任何人都可以推荐任何额外的资源来优化数据库,无论是在这种环境中还是在一般情况下,特别有用?一如既往,我感谢你们的帮助
sql - 在 SQL Server 2005+ 中获取列总计的最优化方法
我正在为各个州使用的应用程序创建一些报告。数据库有可能非常大。我想知道哪种方法是获取列总数的最佳方法。
目前我有类似于以下的 SQL:
如您所见,这些列在其中两次。在一种情况下,我添加它们并显示总数,在另一种情况下,我只显示报告所需的各个值。
这是 SQL 的一个非常小的样本,有 20 多列,并且有时会将其中 4 列或更多列相加。
我正在考虑声明一些@Parameters 并将每个列设置为等于@Parameter,然后我可以添加我需要显示列总数的@Parameters,即:SET @Total = @c1 + @c2
但是,SQL Server 引擎是否会像这样多次关心列在那里?有没有更好的方法来做到这一点?