近来在看sql的一些东西,将一些步骤记录下来。
1. 使用explain来检查查询走索引的情况
2. 将数据库的profile功能打开
select @@profiling;
如果profilling为1,就不用打开了,如果不为1,就打开:
set profiling = 1;
3. 使用show profiles来查看进去执行的各个query
4. 使用show profile all for query xxx. 这个里面的xx就是你上面的query的id
下面我们来看下我这次排查的一个过程:
首先下来看下表结构,这个地方就简略的写下 :
假设 有一张表,表名:GWFP_PROCESS_INFO,假设只有这两列,其中CREATE_USER和别的两个字段建立了联合索引。
表结构:
PROCESS_ID int
CREATE_USER varchar(20)
primary key PROCESS_ID
key CREATE_USER_INDEX(xxx,CREATE_USER,yyyy)
有以下数据:
[PROCESS_ID] [CREATE_USER ]
001 zhangsan
002 zhangsan
003 lisi
004 wangwu
要求写一个查询语句,只显示[name]有重复的数据,没有重复的不显示出来。
这个地方sql的话,有两种写法,都要用子查询,一种是走in
select PROCESS_ID from GWFP_PROCESS_INFO where CREATE_USER in (select CREATE_USER from GWFP_PROCESS_INFO group by CREATE_USER having count(CREATE_USER) > 1);
另外一个是使用exists子查询:
select PROCESS_ID from GWFP_PROCESS_INFO g1 where exists (select 1 from GWFP_PROCESS_INFO g2 where g1.CREATE_USER = g2.CREATE_USER and g1.PROCESS_ID != g2.PROCESS_ID);
我们来看下explain的效果:
数据总量如下:
我们明显看到这两个没有大的区别。
这也不写profile的结果了,两个也差别不大,所以exists和in感觉在这种情况下没有什么区别,就放心了。
相关推荐
IBM DB2 Universal Database (UDB) 作为一款成熟且功能强大的数据库产品,提供了多种工具帮助用户监控和分析SQL语句的执行情况。其中,“语句事件监测器”是一项非常实用的功能,它能够详细记录SQL语句的执行细节,...
SQLTracker是一款专为数据库操作监控设计的工具,它在IT领域中主要用于跟踪和记录SQL语句的执行情况。SQL(Structured Query Language)是用于管理关系数据库的编程语言,包括查询、更新、插入和删除数据等操作。SQL...
SQL语句可以用于跟踪流程状态、查询历史记录、分析流程效率等。例如,通过`JOIN`操作结合流程表和任务表,可以获取某个任务的所有处理人及他们的处理时间。 3. **效率排名SQL**: - 效率排名通常涉及对员工、部门...
- **地理处理**:在地理处理工具中,SQL被用于构建复杂的逻辑表达式,实现数据的过滤、统计分析和空间分析等功能。 #### 四、SQL在ArcGIS的高级应用场景 在ArcGIS的高级应用中,SQL不仅限于上述基础功能,它还可以...
6. **性能调优**:通过分析SQL语句的执行计划,可以识别索引缺失、统计信息不准确等问题,从而对数据库进行针对性的优化。 7. **安全性审计**:Profiler还可以用来监控数据库的安全事件,例如权限变更、登录失败等...
`MakeSQL-master`这个文件名可能指的是一个开源的SQL语句生成器项目,可能包含了源代码、文档和其他资源,供开发者下载和使用。通过这样的工具,开发者可以更高效地进行数据库操作,提高代码质量,同时降低维护成本...
SQL(Structured Query Language)...通过这个“SQL语句基础教程”,初学者将逐步了解和掌握SQL的基本概念和操作,为数据库管理和分析奠定坚实的基础。在实际应用中,不断练习和探索,将使你对SQL的运用更加得心应手。
- **全表扫描**:Oracle通过一次性读取多个数据块来优化全表扫描。虽然这在某些情况下是必要的,但在大数据量时,全表扫描可能导致性能下降。 - **通过ROWID访问**:ROWID包含了记录的物理位置信息,通过索引可以...
这本书“SQL语句电子书”显然涵盖了这一主题的广泛内容,旨在帮助读者掌握SQL的基本概念以及高级技巧。 一、SQL基础 1. 数据库概念:SQL语句首先需要理解数据库是什么,包括关系型数据库的基本原理,如表、字段、...
3. **执行时间统计**:记录每个SQL的执行时间,便于分析性能瓶颈。 4. **日志级别控制**:允许用户根据需要设置不同的日志级别,如DEBUG、INFO、WARN等。 5. **格式化输出**:对打印的SQL进行格式化,使其更易读。 6...
- **批量执行能力**:用户可以一次性提交多条SQL语句,无需逐条执行。 - **执行时间统计**:每个SQL语句执行完毕后,系统会自动记录并显示其执行时间,帮助用户快速了解每条SQL语句的性能表现。 **2. 受影响记录数...
例如,可以通过JOIN操作一次性获取所需的所有数据,而不是通过多个独立的查询。 5. **使用DECODE函数来减少处理时间**:使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表,从而减少处理时间。 6. **整合...
此SQL语句创建一个包含两列的新表:`column1`为整数类型且不允许为空,`column2`为可变长度字符串类型,最大长度为30个字符。 #### 5. 添加主键约束 ```sql altertable<> addprimarykey("column1"); ``` 该语句向...
执行上述SQL语句后,每条记录都将包含一个额外的 `ۼԤ` 字段,显示截至该时间点的累计预计值。例如,对于第一条记录,“2013-01-01”的累计预计值为300;对于第二条记录,“2013-02-01”的累计预计值为380(即300+...
11. **子查询**:嵌套在其他SQL语句中的查询,可以作为表达式的一部分,用于比较、过滤或计算。 12. **聚合函数**:如`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`,用于统计和分析数据。 在实际应用中,SQL语句通常与...
在SQL编程领域,掌握高效的SQL语句优化技巧和基础知识是至关重要的。以下是对"非常好用的SQL语句优化34条+sql语句基础"这一主题的详细解析: 1. **索引优化**:索引是提高查询速度的关键。创建合适的索引(主键、...
SQL语句自动生成器是一款强大的工具,主要用于帮助程序员和数据库管理员快速、高效地编写SQL查询语句。在数据库管理工作中,构建复杂的SQL查询通常需要深厚的技术背景和对SQL语法的熟练掌握。这款软件通过自动化这一...
- 数据分析:通过聚合函数(SUM、AVG、COUNT等)进行统计分析。 - 数据备份与恢复:导出数据为文件,或从备份导入数据。 综上所述,这份压缩包提供了全面的SQL学习材料,涵盖了SQL的基础概念、常用语句、最佳实践...
示例中的右外联接语句结合了子查询,用于找出每个站点在特定日期内最后一次记录的时间戳,同时排除那些在当天早上8点有记录的站点。这通过先进行子查询来找出符合条件的站点和时间戳,然后与原始表`stinfo`进行联接...
MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...