优化SQL之最佳索引

SQL优化工具Tosska SQL Tuning Expert for Oracle,帮助SQL开发人员解决SQL性能问题。

本工具主要创始人Richard To, 资深ITPUB元老,从1996年开始设计SQL优化工具,拥有超过20年的SQL优化经验。

工具已经从最初的1.0, 1.1,1.2,逐步演化到了3.0.  最新版本主要包含3个功能:

1. 为单条SQL产生等价SQL, 并找出最快的等价SQL;

2. 为单条SQL建议最佳索引;

3. SQL性能报表;

官网下载 https://www.tosska.cn/tosska-sql-tuning-expert-tse-oracle-free-download-zh/

产品介绍 https://www.tosska.cn/tosska-sql-tuning-expert-tse-oracle-zh/

下面开始介绍如何用工具建议最佳索引来优化SQL.

1. 创建数据库连接, 也可以稍后创建 (如果已经创建了数据库连接,请忽略此步骤,直接跳到第2步)。

关于如何创建连接,请看 优化SQL之最快等价SQL篇 第1步;

2. 在“索引”页, 输入有性能问题的SQL后, 点击 “建议索引”

注意: 如果我们在“SQL”页已经输入了有性能问题的SQL, 转到“索引”页,就不需要再输入原SQL了。

3. “测试运行所有SQL选项”窗口,提供了很多性能基准测试的选项。

点“确定”按钮开始索引建议。

4. 工具产生了8个索引集合,并且开始性能基准测试。

最快的索引集合是 Index Set 5 (包含了2个索引), 工具将原SQL 从 34.99秒,优化到不到1秒。

原始SQL的执行时间是 34.99 秒。

创建 Index Set 5 后的执行时间是 0.07 秒。

6. 点击 Index Set 5 ,复制创建索引的脚本,在SQL*Plus 或者PL/SQL Developer 中执行。索引创建成功后,确认应用软件性能得到了提升。

原 SQL 的执行时间34.99秒,创建索引后执行时间不到1秒。  调优任务顺利完成!

如何找到1条SQL的最快等价SQL? 请看 优化SQL之最快等价SQL篇

Tosska SQL Tuning Expert Pro for Oracle,除了本文介绍的SQL调优基本功能之外,还能在不修改SQL源码的情况下,调整和稳定SQL执行计划;为批量SQL(例如1000条SQL)建议最优索引。

详情请阅读以下文章:

SQL优化神器-Tosska SQL Tuning Expert Pro for Oracle

SQL优化系列(二)- 查找性能差的SQL

SQL优化系列(三)- 不修改源码,为批量SQL建议最佳索引

SQL优化系列(四)- 不修改源码,调整SQL执行计划

原文地址:https://www.cnblogs.com/dbexpert/p/11582389.html

时间: 2024-10-13 02:18:01

优化SQL之最佳索引的相关文章

mysql数据库性能优化(包括SQL,表结构,索引,缓存)

优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段.降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了.order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算).当我们的 IO 优化做到一定阶段之后

应用索引技术优化SQL 语句一

一.前言 很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句.这类SQL语句性能不好的首要原因是缺乏高效的索引.没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作,使得整个系统性能都受之影响而变差.解决这类系统的首要办法是优化这些没有索引或索引不够好的SQL语句. 本文讨论和索引相关的有关内容,以及通过分析语句的执行计划来讲述如何应用索引技术来优化SQL 语句.通过分析执行计划,读者可以检查索引是否有用,以及如何创建高效的索引.本文对数据库管理人员以

应用索引技术优化SQL 语句三

六.有关索引的几个问题 问题1,是否值得在identity字段上建立聚集索引.答案取决于identity 字段如何在语句中使用.如果你经常根据该字段搜索返回很少的行,那么在其上建立索引是值得的.反之如果identity字段根本很少在语句中使用,那么就不应该对其建立任何索引. 问题2,一个表应该建立多少索引合适.如果表的80%以上的语句都是读操作,那么索引可以多些.但是不要太多.特别是不要对那些更新频繁的表其建立很多的索引.很少表有超过5个以上的索引.过多的索引不但增加其占用的磁盘空间,也增加了S

SQL语句及索引优化

一.Count()和Max()的优化方法 1.查询最后支付时间-优化max()函数 1)语句:select max(payment_date) from payment; 2)查看执行计划:explain select max(payment_date) from payment \G 3)优化方案(建立索引):create index idx_paydate on payment(payment_date); 2. 在一条SQL中同时查出2006年和2007年电影的数量-优化count()函数

应用索引技术优化SQL 语句二

四.分析执行计划创建索引   根据语句的执行计划来判断应该对什么表创建什么索引,是常用优化技巧.其实文章前面的例子已经告诉读者如何结合statistics profile 和statistics IO语句的输出来创建索引.这里分析一个稍微复杂一些的例子. SQL语句如下: SELECT CurrentseNo FROM v_ptdata_edss WHERE MRN = @P1 Statistics IO的输出如下: Table 'ptseoutpat'. Scan count 2, logic

索引,优化sql的一些浅见

避免频繁更新的字段进入索引,增加IO负担 如何减少排序? 1非必要不排序(比如只为了统计总数)2利用索引排序,3减少参与排序的记录数 优化sql的有限选择 优先优化高并发的 SQL,而不是执行频率低某些"大"SQL

十步优化SQL Server中的数据访问(转载)

原文地址:http://tech.it168.com/a2009/1125/814/000000814758.shtml 故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因. 经过紧张的调查,你发现问题出在数据库上,当应用程序尝试访问/更新数据时,数据库执行得相当慢,再次深入调查数据库后,你发现数据库表增长得很大,有些表

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用

SQL Server - 聚集索引 <第六篇>

聚集索引的叶子页存储的就是表的数据.因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引. 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这只是默认行为而已. 示例,建表时通过指定主键为非聚集索引使主键列不为聚集列: CREATE TABLE MyTableKeyExample { Column1 int IDENTITY PRIMARY