query-optimization相关内容

为什么在过滤时使用相同的字段会导致不同的执行时间?(不同的索引用法)

当我通过 agreement_id 运行查询和过滤时,它很慢, 但是当我按别名 id 过滤时,它很快.(看查询的结尾) 为什么过滤时使用相同的字段会导致不同的执行时间? 解释分析的链接: slow1、slow2 fast1、fast2 差异从#20 开始:使用不同索引的地方: 索引条件:(o.sys_period @> sys_time()) VS 索引条件:(o.a ..

在 WHERE 子句中调整 DECODE() 语句的性能

我重新编写了一个查询以减少选择记录所需的时间.但是我仍然看到需要在解码线中进行一些小的调整,因为成本很高.有人可以让我知道是否可以在没有解码功能的情况下重写相同的查询吗?删除 decode 函数的目的是使用 v_id 列中的索引. 到目前为止我所尝试的. 尝试创建函数索引(知道不能使用绑定变量)但失败了. 已尝试使用 OR 条件,但它不会选择索引.因此,任何建议都会有很大帮助. ..
发布时间:2021-06-15 19:55:54 数据库

计算两个日期之间有多少个工作日 - T-SQL?

我意识到不同的解决方案会对“工作日"的含义产生不同的影响,但就我而言,我指的是周一至周五. 基本上我已经创建了一个函数来为我进行计算并且我当前的解决方案有效.我的担忧(以及提出这个问题的原因)是我担心这是实现这一目标的糟糕方法,因为该函数的调用频率非常高.在过去 3 个月内,它在生产系统上被调用了 1200 万次,平均工作时间为 44 毫秒. 这让我怀疑这是否是实现解决方案的正确方法. ..
发布时间:2021-06-15 19:51:19 数据库

在查询中使用时,VARCHAR 列的大小是否重要

可能的重复: varchar(500) 比 varchar(8000) 有优势吗? 我知道包含 10 个字符的 VARCHAR(200) 列与包含相同数据的 VARCHAR(20) 列占用的空间量相同. 我想知道将特定表的十几个 VARCHAR(200) 列更改为 VARCHAR(20) 是否会使查询运行得更快,尤其是在以下情况下: 这些列包含的字符永远不会超过 20 个 这 ..

在多列上计算 DISTINCT

有没有更好的方法来做这样的查询: SELECT COUNT(*)FROM (SELECT DISTINCT DocumentId, DocumentSessionIdFROM DocumentOutputItems) AS internalQuery 我需要计算此表中不同项目的数量,但不同项目超过两列. 我的查询工作正常,但我想知道是否可以仅使用一个查询(不使用子查询)获得最终结果 ..
发布时间:2021-06-15 19:00:41 数据库

大于运算符的优化

credit 表和 validtransaction 表有 2008 年以后的百万条记录数据. 我们正在进行迁移.所以我需要找出2017年(periodseq=1055)之后不再使用的credittypeids,这样就不需要迁移了. 这是查询,>= 部分导致了巨大的成本.请提出替代方案. SELECT CREDITTYPEID来自 CREDITTYPE ct不存在的地方(选择 1来自 ..
发布时间:2021-06-12 20:47:41 数据库

MYSQL:如何加快 sql 查询以获取数据

我使用的是 Mysql 数据库. 我有一个存储有以下字段的股票价值表 daily_price_history.它有 1100 万+ 行 id符号名称符号标识体积高的低的打开约会时间关闭 因此对于每只股票 SymbolName 都有不同的每日股票价值.而且数据现在已经超过1100万行了, 下面的sql尝试获取一组1500个品种的最近100天的每日数据 SELECT `daily_p ..
发布时间:2021-06-06 20:32:18 数据库

在 MySQL 中按几列获取重复的行

我正在尝试按大表(近 18 000 行)中的几列搜索重复行.问题是查询需要很多时间,我试过这个: SELECT * FROM table_name a, table_name b哪里 a.col1 = b.col1AND a.col2 = b.col2AND a.col3 = b.col3AND a.col4 = b.col4和 a.id 出价 还有这个: SELECT *从表名哪里 ..
发布时间:2021-06-06 20:21:04 数据库

mysql 5.7 中的查询比 5.1 慢 2 倍或更多

我们将一个完整的数据库从 MySQL 5.1.63 迁移到另一个(更好一点)服务器到 MySQL 5.7.22.现在大多数查询平均慢了 2 倍.我们还没有对 MySQL 5.1 做太多优化. 这是我们更改的配置: table_open_cache = 4096tmp_table_size=256Mmax_heap_table_size=256Mquery_cache_limit = 100 ..
发布时间:2021-06-06 20:15:08 数据库

如何使用唯一的列值作为另一个选择语句的输入

我有一个表 (MySQL),其中有一列名为 binID.此列中的值范围为 1 到 70. 我想要做的是选择该列的唯一值(应该是从 1 到 70 的数字),然后使用每个值(我们称之为 theBinID)作为参数迭代它们到另一个 SELECT 语句中,例如: SELECT * FROM MyTable WHERE binID = theBinID ORDER BY createdDate DE ..
发布时间:2021-06-06 20:00:12 数据库

需要帮助优化 SQL 查询

过去 6 个月以来,我在一个高流量网站上遇到了一个让我非常伤心的查询,我迫切需要帮助.我是一名前端开发人员,能够编写简单的 SQL 查询,因此我无法自己解决此问题.由于内存或 CPU 不足或 VPS 上其他查询的干扰,该查询现在经常锁定 mysql 数据库.我升级了硬件,但这并不能解决问题.因此,这里描述了查询尝试执行的操作: 用户访问特定 URL(例如 the_source_url).应用 ..
发布时间:2021-06-06 19:49:59 数据库

SQL Server 是否优化常量表达式?

如果我在 SQL Server 中做这样的事情... 选择 *来自 mytable其中 1=1 ...1=1 条件是否得到了优化,还是实际上对每一行都进行了评估? 我也有兴趣了解其他 DBMS 在这方面的表现,尤其是 MySQL. 解决方案 SQL Server: 第一个例子: 1=1 谓词被 SQL Server 查询优化器自动删除,因为它总是 true: 第 ..
发布时间:2021-06-06 19:43:07 数据库

优化mysql查询

我想优化这个查询,因为它需要很长时间来执行几乎一秒钟 这是查询: IF 存在(从客户中选择 CustFirstName其中(客户名字 = 输入客户名字)或 (CustLastName= InputCustLastName)或(电子邮件 = 输入电子邮件)); 所有这三列都有唯一索引.我有 765704 条记录. 这是我查询的解释结果集: ----+-------------+-- ..
发布时间:2021-06-06 19:20:38 数据库