查看: 4372|回复: 40

新一代SQL调优产品 - 无需更改源代码即可进行智能SQL调优

[复制链接]
论坛徽章:
20
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
发表于 2018-5-15 10:01 | 显示全部楼层 |阅读模式
本帖最后由 richto 于 2018-5-17 18:11 编辑

新一代SQL调优产品 - 无需更改源代码即可进行智能SQL调优


理想的情况是程序源代码和SQL性能能够分离处理,数据库开发人员可以在不触及源代码的情况下管理SQL性能。 想象一下,如果您有一个源SQL必须部署到不同大小数据库,某些数据库可能运行性能良好,但其他一些数据库可能没有按预期好的性能执行, 这个问题很难处理。但随着Tosska最新的Auto-Hints-Injection技术,SQL语句可以通过SQL Patches或SQL Plan Baselines与我们的Hint Injection技术来调整,而无需更改源代码。 因此,不同大小的数据库可以使用不同的SQL Patches来实现特定的数据库性能调整目的。

例如; 下面的SQL语句用了6.17秒来完成执行
1.png


通过Tosska SQL TuningExpert Pro进行SQL调优后,发现以下提示注入可将SQL语句提高到99.51%。 用户需要做的是将包含原始SQL语句的SQL Patch部署到数据库; 并不需要修改任何源代码。
2.png

同样的SQL在SQL Plus中再次执行,现在的执行时间减少至0.04秒。 无需更改生产数据库中的任何源代码或程序安装。
3.png

欢迎来测试并提供建议
https://tosska.com/tosska-sql-tuning-expert-pro-tse-pro-for-oracle-download-free-trial/
你必须输入正确的电子邮件账户以获取试用码

Tosska SQL Tuning Expert Pro.pdf

1.09 MB, 下载次数: 20

论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2018-5-15 20:56 来自手机 | 显示全部楼层
和newkid用过的是一回事?

使用道具 举报

回复
论坛徽章:
326
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:22海蓝宝石
日期:2012-02-20 19:24:27铁扇公主
日期:2012-02-21 15:03:13
发表于 2018-5-15 21:47 | 显示全部楼层
行业专家,支持!

使用道具 举报

回复
论坛徽章:
526
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
发表于 2018-5-16 02:55 | 显示全部楼层
新版界面好看了很多,看来是请了专业美工。
上次的测试版只允许查看前面30个SQL变种。这次我测试了几个都只有20多,所以不知道限制是否解除了。
最方便的改进是可以"Deploy Plan"并且Migrate。但是我测试的时候Deploy Plan Baseline 都是灰色不可选,不知道是怎么回事?Deploy SQL Patch可以用。
关于这个功能想请教一下,就是来自存储过程的SQL都是被PL/SQL格式化过的,根本没法读,所以在调试时一般都会再次格式化,至少分多行书写。这时候SQL_ID会变。在这种情况下,还能将SQL PATCH/BASELINE 进行发布吗?

使用道具 举报

回复
论坛徽章:
20
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
 楼主| 发表于 2018-5-16 10:54 | 显示全部楼层
本帖最后由 richto 于 2018-5-16 10:58 编辑

新版界面好看了很多,看来是请了专业美工。
Thank you Newkid, we have more time to do this


上次的测试版只允许查看前面30个SQL变种。这次我测试了几个都只有20多,所以不知道限制是否解除了。
You can enable more alternatives in Option window "IntelligentLevel -> Disregard SQL alternatives with cost > 50 times of Original SQL.For simple SQL, this option help to reduce the number of alternatives generation and save you some time in test running. For complex SQL or SQL that you cannotfind better alternative, you can enable it, for certain situations, some highest cost SQL alternatives may have good performance.

最方便的改进是可以"Deploy Plan"并且Migrate。但是我测试的时候Deploy PlanBaseline 都是灰色不可选,不知道是怎么回事?Deploy SQL Patch可以用。
You can enable Plan Baseline in Option window -> Deploy Plan
We recommend use SQL Patches, since it is better than Plan Baselines.SQL Patches is more flexible to accept different kind of Hints combinations such as parallel hint.


关于这个功能想请教一下,就是来自存储过程的SQL都是被PL/SQL格式化过的,根本没法读,所以在调试时一般都会再次格式化,至少分多行书写。这时候SQL_ID会变。在这种情况下,还能将SQL PATCH/BASELINE 进行发布吗?
Yes, you can use SQL Patches or Plan Baseline to optimize the SQL without the need to change your PL/SQL code. You can capture those SQL from SGA or use our Find SQL function to find the executed SQL text. Here is the information from our Help manual.

Find SQL

Find SQL is used to find the exact SQL text that is executed by Oracle. If user want to tune a SQL from PL/SQL or other program sources by SQL Patches or Plan Baselines, user must find out the exact SQL text that Oracle is used to execute in SGA. TSE Pro provide a handy Find SQL function to help user to findsimilar SQL statements from SGA and user can select the exact SQL text to be tuned by TSE Pro.

For example the SQL in the following PL/SQL code is not the exact SQL text thatO racle is used to execute.

DECLARE
   a int; bint;
begin
   a:=123123233;
   select count(*) into b from employee where emp_id<a;
end;

User can paste the SQL statement into the SQL Editor of Tune SQL and press Find SQL tofind similar SQL from SGA. The following SQL is the exact SQL text that will appear on the Similar SQLs list in Find SQL window.

SELECT COUNT(*) FROM EMPLOYEE WHERE EMP_ID<:B1

Refresh

This button is used to extract SQL from Oracle SGA again for the SQL which is just executed by user's program.



使用道具 举报

回复
论坛徽章:
526
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
发表于 2018-5-16 23:35 | 显示全部楼层
找到你六年前写的一篇文章,当时是不推荐SQL PATCH的。现在观点变了吗?为什么呢?
https://community.toadworld.com/ ... -sql-plan-baselines

使用道具 举报

回复
论坛徽章:
20
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
 楼主| 发表于 2018-5-17 11:21 | 显示全部楼层


Yes, I changed my mind.


If you can see this link:

https://blogs.oracle.com/optimizer/adding-and-disabling-hints-using-sql-patch


"FromOracle Database 12c Release 2, the interface to SQL Patch is greatly improvedand easier to use. In particular, it’s now part of the public API and the hinttext is a CLOB (because VARCHAR2 can be too limiting if you want to specify acomplete query outline). The API includes a new SQL_ID parameter too. Check outthe documentation for thedetails, but here’s an example of the new look:"


SQL Patches now come with public API, better documentation (maybe they saw my comments)

I compared SQL Patches with Plan Baselines and SQL Profiles, Ifound SQL Patches is much better in accepting different hints combinations. Itis very important for manual Hints injection, if you use it to influence databaseSQL optimizer to generate a better plan for a problematic SQL statement.


使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2018-5-17 14:23 | 显示全部楼层
代码编辑器字体要用等宽的

使用道具 举报

回复
论坛徽章:
20
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
 楼主| 发表于 2018-5-17 15:47 | 显示全部楼层
〇〇 发表于 2018-5-17 14:23
代码编辑器字体要用等宽的

Thanks, I will tell our developers for this recommendation.

使用道具 举报

回复
论坛徽章:
526
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
发表于 2018-5-17 22:03 | 显示全部楼层
richto 发表于 2018-5-17 11:21
Yes, I changed my mind.

If you can see this link:

我在我们的QA库上试了一下,结果把我们的GOLDEN GATE复制搞趴下了。
原因是你的软件会临时创建一个TOSSKA_STAGTAB_SQLPATCH表。我们有一套审计机制,对于所有新建表都要建立对应的审计表,结果 CREATE AS SELECT 出了错,因为这个表里面有LONG类型。我手工创建了表,又碰到另外一个问题,因为我们的审计表要求按日期INTERVAL分区,而包含LONG的表没办法做此分区。
ORACLE如果要改进这个功能,应该做彻底一点,都12.2了还用LONG类型?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

第67期:Neo4j图数据库平台架构最佳实践
【微学堂】10月18日 20:00(周四)

当下,数据的规模和类型每时每刻都在呈几何级数的增长,仅能够管理大量的数据是不够的,关键是能从海量数据中发掘出有用的信息,特别是数据之间的关联,能高效存储和处理数据之间关联的新型数据库为图数据库。 本讲座将介绍Neo4j图数据库的基本概念、设计特点、架构和经典应用场景实战分享。

进入课堂>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表