ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 2632|回复: 80

邀请高手测试一款机械式全自动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
发表于 2017-12-20 12:11 | 显示全部楼层 |阅读模式
本帖最后由 richto 于 2017-12-21 11:06 编辑

邀请高手测试 SQL Tuning Expert for Oracle - An Innovative Machine Tuning Tool for SQL Statements

一款自动化SQL优化工具Tosska SQL Tuning Expert for Oracle上线啦!

下载地址:
https://tosska.com/tosska-sql-tu ... acle-free-download/

官方详细介绍:
https://tosska.com/tosska-sql-tuning-expert-tse-oracle/

欢迎各位大大提出建议

Richard To
CTO - Tosska Technologies Limited
认证徽章
论坛徽章:
0
发表于 2017-12-20 17:56 | 显示全部楼层
下载地址不对?

使用道具 举报

回复
论坛徽章:
487
秀才
日期:2015-09-09 10:33:01秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12状元
日期:2015-11-23 10:04:09举人
日期:2015-11-23 10:04:09秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21
发表于 2017-12-21 01:36 | 显示全部楼层
本帖最后由 newkid 于 2017-12-21 02:56 编辑

下载地址可以从主页进入。
我测试了一个简单的SQL:

SELECT * FROM TABLE_A
  WHERE XXX_ID IN ( SELECT XXX_ID FROM TABLE_B WHERE DML_TYPE IN ( 'D', 'A') );

所有设置都是缺省的。它花了30分钟尝试了500个SQL变种, 不同计划的有65种,这个感觉不是很智能,里面肯定有很多是做无用功。

最后结果只能够看前面30个SQL的写法,因为是免费版。如果你的最优SQL出现在第31个之后,那么很不幸你就看不见了。

使用道具 举报

回复
论坛徽章:
487
秀才
日期:2015-09-09 10:33:01秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12状元
日期:2015-11-23 10:04:09举人
日期:2015-11-23 10:04:09秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21
发表于 2017-12-21 01:38 | 显示全部楼层
本帖最后由 newkid 于 2017-12-21 02:55 编辑

我又测试了下 DBMS_SQLTUNE.EXECUTE_TUNING_TASK, 它两秒钟就做完了,告诉我 There are no recommendations to improve the statement

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2017-12-21 09:24 | 显示全部楼层
newkid 发表于 2017-12-21 01:38
我又测试了下 DBMS_SQLTUNE.EXECUTE_TUNING_TASK, 它两秒钟就做完了,告诉我 There are no recommendations ...

我下载了,谢谢大神

Oracle DBMS_SQLTUNE
   优点: 速度快
   缺点: 很可能找不到更好的结果;

Tosska SQL Tuning Expert
   优点: 能找到更多的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
 楼主| 发表于 2017-12-21 11:10 | 显示全部楼层
newkid 发表于 2017-12-21 01:36
下载地址可以从主页进入。
我测试了一个简单的SQL:

If you pick 3 out of 100 hints, there are up to 100x99x98 = 970200 possible SQL alternatives, the tool help you to narrow down to only hundreds of possible solutions.

使用道具 举报

回复
论坛徽章:
487
秀才
日期:2015-09-09 10:33:01秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12状元
日期:2015-11-23 10:04:09举人
日期:2015-11-23 10:04:09秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21
发表于 2017-12-21 22:47 | 显示全部楼层
HINTS是有很多,但是大部分是不常用的,我们也不会傻傻的全去尝试。像这个简单的SQL,500个变种也是在是太多了,实际使用中需要调优的SQL往往非常复杂,那么可想而知其变种会是个多么庞大的数字。我曾经问过你的取舍规则是什么,这可能涉及到商业机密所以没有答复,但是你至少要给个令人信服的说法。
此外这个试用版的限制也减少了这个工具的吸引力,我要是看不到令我满意的结果,是没有兴趣继续用的。你可以考虑不限功能但限制试用天数的办法。
我建议你创造几个实用案例,从CREATE TABLE, INSERT, GATHER STATS 脚本开始,证明CBO和 TUNING ADVISOR 如何有盲点,选择了不够优化的计划,而你的工具又如何找到了比它们更好的计划,这样才能真正宣传你这个工具的亮点。

使用道具 举报

回复
论坛徽章:
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
 楼主| 发表于 2017-12-22 11:53 | 显示全部楼层
newkid 发表于 2017-12-21 22:47
HINTS是有很多,但是大部分是不常用的,我们也不会傻傻的全去尝试。像这个简单的SQL,500个变种也是在是太 ...

You can try more SQL or even more complex SQL. The good solution may be in the first 30 alternatives, you can use it for free. It is not fair to create our own database to prove our concept. People should test it in their environment. If a tool is good in specific environment, but not applicable in another, it is not a good tool.
For hints selection and permutation algorithm, yes, it is confidential and I have spent a lot of time on it and it is also not easy to tell in a few sentences.   

使用道具 举报

回复
论坛徽章:
487
秀才
日期:2015-09-09 10:33:01秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12状元
日期:2015-11-23 10:04:09举人
日期:2015-11-23 10:04:09秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21秀才
日期:2016-01-06 14:10:21
发表于 2017-12-22 23:41 | 显示全部楼层
你这个工具的开发难度是相当高的,所以才要好好宣传,而最好的宣传就是成功案例,你在开发过程中一定积累不少。你真的需要找个会“讲故事”的伙伴,不一定需要讲出你的核心秘密,就像CBO的很多奥秘也没有公开,但是ORACLE也透露了很多原理,搞技术的人对这些比较感兴趣。
如果让用户自己去发现,我想有那个耐心的人并不多,因为跑一次要那么久,后面花那么多时间找出来的SQL又看不见,能得到理想结果完全凭运气。
你还提到了不同环境的问题,用户自己就有很多环境,而同一个SQL是要适应这些不同环境的,CBO可能会在不同环境生成不同的计划。如果用HINTS固定,那么计划可能就僵化了。TOM的观点是反对使用HINTS的,它是调优的最后选择,不是常规手段。

使用道具 举报

回复
论坛徽章:
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
 楼主| 发表于 2017-12-25 10:57 | 显示全部楼层
Good idea, I will try to write up something to show the power of the product.
Here is an example shows you what we have done.
You can see how our product works for this SQL, I am not going to discuss what happened to this SQL, but you will find that it is not something that a human expert will do.
The engine is not telling Oracle how to optimize this SQL, it just tell Oracle not to do something and still give Oracle certain space to select better query plan.

Original SQL(8.56 seconds):

Original SQL

Original SQL

select rownum,
       a.*
  from (select sum(emps_salary),
               dpts_name
          from employees,
               departments
         where emps_dept = dpts_id
         group by dpts_name
         order by sum(emps_salary) desc) a
where rownum < 10


The best SQL(2.49 seconds):

Best SQL

Best SQL


Select /*+ QB_NAME(QB1) NO_INDEX(@QB2 EMPLOYEES EMPSS_GRADE_INX) NO_USE_HASH(@QB2 DEPARTMENTS) PARALLEL_INDEX(@QB2 EMPLOYEES) */ rownum,
a.*
From (Select /*+ QB_NAME(QB2) */ sum(emps_salary),
dpts_name
From employees,departments
Where emps_dept = dpts_id
group by dpts_name
Order by sum(emps_salary) desc) a
Where rownum < 10

使用道具 举报

回复

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

本版积分规则

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