Tosska Technologies宣布推出其旗舰SQL性能调优产品 – 适用于Oracle®的Tosska SQL调优专家(TSE™)

创新的SQL语句优化工具

Dec. 18, 2017

Hong Kong, December 18, 2017 – Tosska Technologies Limited(Tosska)是一家专门提供数据库和SQL性能相关工具的IT公司,今天宣布推出他们的第一个提供机器调整功能以改善Oracle® SQL性能的产品Tosska SQL Tuning Expert(TSE™)。

SQL调优是每个DBA都会遇到的标准问题。 调优SQL语句就是要找到执行SQL语句的最快路径。 为了调优SQL语句,您需要了解数据库体系结构并具有SQL调优技能的深入知识。

「市场上有很多SQL调优技巧,但大多数只在特定的数据库环境中才有用。 您需要在数据库上手动逐个尝试这些提示。 这不仅耗时,而且也无法保证您能为SQL语句找到最佳性能的解决方案,」Tosska首席执行官伍家铭说。 「对于DBA或有经验的SQL开发人员来说,调整有问题的SQL语句可能需要数天或数周的时间。 SQL调优是一项非常需要技巧的工作,在很多企业中,他们的开发人员都无法执行这样的工作。 这些昂贵且宝贵的时间是否应该节省并用于公司内部其他更高效的任务? 这就是我们设计TSE来解决这个问题的原因。」

「TSE™背后的设计理念是提供一种机器调优工具,可以在不需要用户参与的情况下优化SQL语句。 用户只需要将有问题的SQL语句输入到工具中并按下按钮,然后工具就会处理其余部分,无需用户在整个SQL调优过程中进行分析,猜测或测试,」Tosska首席技术官杜伟业表示。「TSE™通过使用Tosska发明的嵌入式人工智能(AI)引擎的专有技术,来模仿人类专家的SQL调优过程,来实现这一目标。调优引擎会在指定的配额内,为SQL语句尝试每种可能的有效Oracle Hints组合以改进执行的速度。 由于SQL语句的Oracle Hints组合的排列非常庞大,因此人类专家是无法为复杂的SQL语句完成这样的调优的。」

TSE™现在可以从Tosska的网站免费下载。 有关详细信息,请访问Tosska的网站www.tosska.com。

关于 Tosska
Tosska Technologies是一家专注于为数据库和SQL相关性能优化和改进提供解决方案的公司。我们的使命是通过我们的新技术帮助用户消除障碍。此外,Tosska是世界上为数不多的专注于使用人工智能技术解决各种数据库性能问题的公司之一。我们的目标是帮助客户减少硬件投资; 提高他们的数据库应用程序服务水平,利用我们的创新技术,为更多的战略活动腾出人力资源。更多信息请访问www.tosska.com 或发邮件至 enquire@tosska.com。

新闻和媒体咨询
KaMing Ng
Chief Executive Officer
Tosska Technologies Limited
Phone: +852-28248420
Email: enquire@tosska.com

All Trademarks mentioned on this Site are the property of their respective owners.

从另一个角度看为什么要使用Oracle In-Memory数据库选项

很多人都在谈论为什么或者为什么不在他们的应用程序中使用 Oracle In-memory 数据库,他们中的大多数都过于关注数据库的大小,或者它是否是 OLAP 应用程序。中小型数据库似乎不适合使用 Oracle In-memory数据库选项。但是,如果您的 OLTP 数据库存在性能瓶颈,并且您正在寻找解决方案,我认为 Oracle In-memory数据库选项应该位于您的解决方案列表中,尤其是在计划升级硬件时。

在Oracle In-Memory 数据库中,SQL优化器优化计划空间越来愈大
计划空间是数据库 SQL optimizer 在输入 SQL 语句之前将考虑的潜在处理方法的大小。更大的计划空间大小意味着数据库 SQL optimizer 将考虑处理 SQL 语句的更多潜在方法。因此,您的 SQL 语句有更多运行更快的机会。使用 Oracle In-Memory 数据库新的 In-Memory数据访问方法,Oracle SQL 优化器将在 SQL 语句执行之前考虑更大的计划空间。由于乘数效应,新的 In-Memory 执行计划步骤可能会导致计划空间大小发生巨大扩展。例如, In-Memory 包含 5 个表的 SQL 语句,每个表的访问方法的”Table Access Inmemory Full”步骤,结果是 C(5,1)+C(5,2)+C(5,3)+C(5,4)C(5,5)=5=10=10=5=1=31。但不要忘记,此乘法器适用于原始计划空间树中的每个执行计划,这意味着新计划空间大小可能比原始计划空间大 31 倍。

OLTP 数据库如何从 In-Memory 数据库中获得优势?
OLTP 数据库是面向事务的应用程序,它要求每个事务都有快速的响应时间,但这并不意味着在工作时间没有用于联机报告或数据整合的复杂 SQL。如果此类慢速的 SQL 语句与其他联机事务同时运行,则整体性能将受到影响。如果硬件升级是其中一个选项,应考虑使用 Oracle In-Memory作为替代解决方案之一。
下面的示例向您展示了OLTP SQL语句如何从使用Oracle In-Memory数据库选项中获益。
下面是一个典型的 OLTP SQL,对所有表都进行了分析,原始执行计划显示了一个 Oracle 自适应计划,其中哈希联接或嵌套循环将在执行的初始阶段确定。此 SQL 的运行时间约为 1 分 35 秒。

L让我们使用强制提示将 EMPLOYEE 表放入Oracle In-Memory中,然后 Oracle 访问它时,采用”Table Access Inmemory Full”扫描,下面的基准测试显示,“Auto 1” SQL仅花费0.45秒就完成了,比原始执行计划快200多倍。该解决方案表明,对EMPLOYEE表引入新的“Table Access Inmemory Full”扫描,创建了比原来更好的执行计划。

对于OLTP的SQL,不需要将所有表放入 In-Memory
使用 OLTP 数据库时,我们不希望将所有表填充到In-Memory,从而给联机事务带来过多的开销。因此,对于OLTP 的 SQL 使用 In-Memory SQL 调优的目标不是选择最佳性能解决方案,而是具有较少In-Memory表的最经济高效的解决方案,且其性能改进仍是可以接受的。
如下面: “Auto 3” 解决方案把包含的所有表都被放入In-Memory,但改进仅比 “Auto 1” 高 0.01 秒,后者只需要将一个表放入In-Memory。因此,”Auto 1″显然是一个更可取的选择。

Oracle应该根据 In-Memory 的大小为 In-Memory 选项装载
实际上,Oracle In-Memory数据库不仅仅有利于OLAP用户,而是对于所有数据库用户(比如OLTP用户)来说,都是一个很好的SQL性能增强工具。鉴于Oracle In-Memory 数据库选项定价过高,限制了该新技术的快速适应,建议Oracle根据 In-Memory 大小来决定价格。换句话说,更小的尺寸和更低的价格肯定会帮助 Oracle
In-Memory数据库可广泛渗透到所有数据库用户,包括 OLTP 用户。

Author: Richard To (Richard.to@tosska.com), CTO of Tosska Technologies Limited

释放强大的 Oracle Optimizer Hints 来优化SQL语句

常见的SQL调优方法
SQL 调优是提高 SQL 语句性能,达到用户期望的过程。开发人员或 DBA 通常使用三种方法,这些方法包括创建新索引、重写 SQL 语句和将 Oracle 优化器提示应用于 SQL 语句。每种方法都有其优缺点,适用于应用周期的不同阶段。让我们在下面讨论这三种方法。

为SQL语句创建新的索引
为SQL语句创建新的索引是提高SQL性能的一种非常常见的方法,在数据库开发过程中尤其重要。由于SQL语句的新索引不仅影响当前SQL,还影响同一数据库上运行的其他SQL语句。因此,在生产数据库中应谨慎使用。通常,用户需要对新创建的索引的其他相关SQL语句进行影响分析。

重写 SQL 语句
有很多人通过互联网教授 SQL 重写技能。这些重写规则大多都基于 Oracle 规则的 SQL 优化器或基于成本的 SQL 优化器的旧版本继承。例如,有些人可能认为以下 SQL 可能具有不同的性能:
Select * from A where A.unique_key in (select B.unique_key from B);
Select * from A where exists (select ‘x’ from B where A.unique_key=B.unique_key);

实际上,如果将这两个 SQL 放入 Oracle 数据库中,您可能会从 Oracle 获得相同的查询计划;这是因为 Oracle SQL 优化器将在内部将这两个 SQL 重写为一个标准形式,以便生成更好的查询计划。在过去的二十年中,Oracle SQL optimizer开发了一种更强大的内部重写能力。因此,Oracle已经解决了一些明显的问题,如“KEY IS NOT NULL”或“NVL(KEY, ‘ ABC ‘) = ‘ ABC ‘”不能使用索引。当然,对于复杂的SQL转换,Oracle SQL optimizer仍然存在一些限制,因此经验丰富的用户仍然可以通过SQL重写来调优SQL语句,从而影响Oracle SQL optimizer生成更好的查询计划。但是,由于 SQL 语法和最终查询计划生成之间的关系越来越弱,因此 DBA 越来越难以应用此方法,这是因为Oracle基于成本的优化器(CBO) 变得越来越智能,并且 SQL 文本的语法不再是成本计算和计划生成中的主导因素。
SQL 重写在开发和生产数据库中仍然很有用,因为它是对数据库的单独更改,并且不会影响其他 SQL 的性能,并且比创建新索引更安全。但是它需要在程序源代码中修改SQL语句,因此单元测试或集成测试可能仍是必需的。相反,使用提示来调整 SQL 相对更安全,因为不容易意外地更改SQL的语义。

对SQL语句应用提示
市场上的大多数数据库都提供了一些查询计划控制语言,以帮助其优化器更好地优化特定的 SQL 语句。例如:IBM LUW 优化指南和 SQL Server 计划指南已经提供了多年。Oracle 提供了嵌入 SQL 文本的优化器提示,用于告诉 Oracle SQL 优化器如何优化 SQL 语句。由于提示不会影响 SQL 语句的语义,因此它比 SQL 重写和生成新索引相对更安全。Oracle提供了超过100个文档化的优化提示。使用正确的提示来调整 SQL 是并不容易掌握,除非您是使用优化器提示的专家,即使是专家,如果从一百个提示中挑选只3个提示,那也是非常的困难的, 因为它是接近一百万的排列。
让我们用一个带有以下 Optimizer Hints 的简单SQL示例来展示优化提示是如何工作的,这些提示用于告诉Oracle SQL Optimizer在查询计划选择期间尽可能使用DEPARTMENT表的索引。Oracle将通过对DEPARTMENT表的索引检索,在所有计划中寻找成本最低的计划。
Select /*+ INDEX(@QB2 DEPARTMENT) */ *
From employee
Where emp_dept in (Select /*+ QB_NAME(QB2) */ dpt_id
    From department
    Where dpt_name LIKE ‘D%’);

Oracle SQL提示不是一种编程语言
Oracle Optimizer hint不是一种带有正确语法检查或错误返回的编程语言。这意味着一个无效的SQL语句提示指令,Oracle SQL优化器不会返回错误消息。此外,即使这是一条有效的提示指令,Oracle SQL优化器实际上不能遵守,也不会返回错误消息。因此,在影响SQL优化器生成特定的更好的查询计划之前,用户必须进行大量的反复试验。

了解解决方案
这是一个非常常见的调优实践,人们试图为性能较差的SQL语句找到最佳的查询计划,它的工作就像一个人模拟Oracle SQL优化器的工作,用人的知识优化SQL语句。如果SQL语句很简单,而且Oracle SQL优化器犯了一个明显的错误,那么人工干预对这种简单的SQL很有效。举个例子:
Select * from A where A.KEY<’ABC’;
如果Oracle SQL optimizer没有使用索引从表A检索记录,而使用索引KEY1实际上是一个更好的解决方案。您可以使用优化器提示来指示Oracle对该SQL语句使用索引而不是全表扫描。
Select /*+ INDEX(KEY1 KEY1_INX) */ from A where A.KEY1<’ABC’ and A.KEY2<123 and A.KEY3<’C’;
了解最佳解决方案对于简单的 SQL 语句来说很容易,但对于复杂的 SQL 语句来说却很难。由于复杂 SQL 的查询计划中有很多执行步骤,因此人类无法估计每个步骤并制定一系列查询步骤来组成最佳性能查询计划。因此,使用 Oracle 优化器提示来指示 SQL 优化器为复杂 SQL 生成特定的查询计划可能并不容易,即使对于经验丰富的 SQL 调优专家也是如此。

了解问题
与了解 SQL 语句的解决方案不同,人工专家可以相对更轻松地查找问题在复杂查询计划中的位置。告诉 Oracle 绕过此问题的方法是应用前缀为”NO_”的提示,如 NO_INDEX 或 NO_USE_HASH。它告诉 Oracle 不要在查询计划中使用指定的操作,而是选择成本较低的其他操作。这种方法在市场上并不普遍采用,因为人们通常受以解决方案为导向的思维的约束。
例如:
Select /*+ NO_INDEX(KEY2 KEY2_INX) */ * from A where A.KEY1<’ABC’ and A.KEY2<123 and A.KEY3<’C’;
如果您认为 KEY2_INX 不是从表 A 检索记录的好索引,则可以通过应用 /* NO_INDEX(KEY2 KEY2_INX)*/ 来禁用 KEY2 索引,并让 Oracle 选择其他索引来检索记录。

释放Oracle优化器提示的潜在功能
无论您是使用面向解决方案的方法还是问题绕过方法,您都需要了解 SQL 查询计划的详细信息、数据分布、每个步骤的成本,并尝试预测计划的最终实际聚合成本是什么。有时,您必须将这两种技术用于复杂的 SQL 语句;您必须为查询计划的某些部分提供最佳查询步骤,并使用”NO_”绕过查询计划中的已知问题。这是一个非常复杂的过程,如果没有对 SQL 调优的深入了解,普通 SQL 开发人员很难执行。
下面的示例显示了一个花费8.56秒完成的SQL,查询计划看起来很正常。SQL语法是完整的,因此没有太多空间进行SQL重写。可能并行执行可以帮助改进SQL语句,但是应该使用哪个表或索引进行并行执行,以及新的并行执行步骤如何影响整个查询计划。即使对于经验丰富的 SQL 调优专家来说,这也不是一件容易的事。这就是为什么Oracle优化器提示没有从一开始就被充分挖掘的原因。

借助最新的 AI 算法,计算机搜索引擎可以极大地释放用户发现提示组合的努力,而无需经历巨大的提示排列空间。它使 hint SQL调优变得更容易,并可以解决比您预期的更多的问题。
以下解决方案显示了一系列提示组合,这些提示组合告诉 Oracle 不要使用 EMPLOYEES.EMPSS_GRADE_INX 索引和排除哈希联接以联接表,然后使用表 EMPLOYEES 的并行索引扫描。它生成比原始计划快 70% 的新查询计划。整个调优过程无需人工干预即可完成,结果是安全的,因为它不涉及任何语法重写。


https://www.tosska.cn/tosska-sql-tuning-expert-tse-oracle-zh/

Tuning SQL without touching the its SQL text
如果您是一个应用程序用户,您可能想知道,如果无法直接编辑查询,如何调整 SQL。或者,如果您是应用程序开发人员,您希望快速修复 SQL 性能,而无需花时间进行思考源代码更改和单元测试。Oracle 提供了多个功能,例如 SQL 配置文件、SQL Plan Baselines和 SQL Patch, 您可以使用这些功能告诉 Oracle 修复 SQL 的查询计划,而不需要更改SQL文本。但是这些功能的使用仅受 Hints 注入的限制,您不能使用不同的语法重写 SQL,并且要求原始 SQL 接受重写的 SQL 查询计划。因此,在当今瞬息万变的数据库应用程序中,基于Hints的 SQL 调优变得越来越重要。
实际上,SQL 性能应该与应用程序源代码分离,SQL 性能应该易于管理,以便随时随地部署和回滚。它还应该为一个源 SQL 代码进行定制,以适应不同大小的数据库。基于hints的 SQL 调优将是释放 Oracle 数据库 SQL 性能管理潜在功能的关键,在现代数据库 SQL 调优过程中,它变得越来越重要。

Tosska 软件技术有限公司宣布他们的主要SQL性能调优产品——Tosska SQL Tuning Expert Pro (TSE Pro™) for Oracle® 面市

智能SQL调优,无需修改程序源代码

2018年 5月15日

香港,2018年5月15日——Tosska技术有限公司(Tosska),一家IT公司提供数据库和SQL性能相关工具,今天宣布 Tosska SQL Tuning Expert Pro (TSE Pro™)上市,它是Tosska SQL调优专家系列的主要产品,拥有最先进的Oracle® SQL性能调优的能力,且无需触及程序的源代码。

SQL调优对于每个DBA来说都是一个经典问题。调优SQL语句就是找到执行SQL语句的最快路径。市场上已经有很多SQL调优产品提供了更好的查询计划可视化、更好的统计分析、高成本的查询计划步骤指示甚至经验语法建议。总而言之,如果用户没有深入的SQL调优知识,且不愿意在日常工作之外花费额外的精力来调优SQL,那么这些工具是没有帮助的。

用户迫切需要一键式解决方案工具,该工具可以自动调整 SQL 语句,而无需用户干预。 Tosska SQL调优专家产品系列宗旨在于帮助DBA通过几个简单步骤就能完成SQL的调优。

“Tosska SQL Tuning Expert Pro是一个用户可以在不触及程序源代码的情况下就可以完成提高SQL性能的工具。用户甚至可以为各种大小的生产数据库部署不同的性能查询计划,而无需维护程序源的多个版本。它特别适合没有应用程序源代码的软件包应用程序用户。如果您是应用程序用户,并且不能直接编辑其源代码,如何调优其SQL语句呢?因此,我们决定扩展TSE产品系列,开发TSE Pro™来解决这个问题。” Tosska首席执行官kming Ng 说到。

“Oracle提供了多种特性,比如SQL概要文件、SQL Plan Baselines和SQL Patch,您可以使用这些特性告诉Oracle修复SQL的查询计划。但是,这些功能的使用只受 Hints 注入的限制,您不能用不同的语法重写SQL,并要求原始SQL接受重写的SQL查询计划。因此,hints-based 的SQL调优变得比以往任何时候都更加重要。Tosska SQL Tuning Expert Pro 是唯一一个可以提供市场上最先进的Auto-Hints-Injection 解决方案的工具,从SQL调优到计划部署的过程可以完全自动化完成。TSE Pro™ 还提供基于工作负载的智能索引顾问,帮助用户查看其现有数据库架构(如果有可帮助改进给定 SQL 工作负载的任何新索引)。TSE Pro™使用我们专有的人工智能(AI)引擎,可以处理多达数千条SQL语句,并为您提供即使是人类专家也无法实现的合理建议。” Tosska 的 CTO,Richard To 说到。

免费试用TSE Pro™现在可以从Tosska的网站下载。详情请访问Tosska网站www.tosska.com。

   
关于 Tosska
Tosska Technologies是一家专注于为数据库和SQL相关性能优化和改进提供解决方案的公司。我们的使命是通过我们的新技术帮助用户消除障碍。此外,Tosska是世界上为数不多的专注于使用人工智能技术解决各种数据库性能问题的公司之一。我们的目标是帮助客户减少硬件投资; 提高他们的数据库应用程序服务水平,利用我们的创新技术,为更多的战略活动腾出人力资源。更多信息请访问www.tosska.com 或发邮件至 enquire@tosska.com。

新闻和媒体咨询
KaMing Ng
Chief Executive Officer
Tosska Technologies Limited
电话: +852-28248420
邮箱: enquire@tosska.com

All Trademarks mentioned on this Site are the property of their respective owners.

Tosska 软件技术有限公司宣布 Tosska SQL Tuning Expert (TSE™) for Oracle® version 1.5.0 版面市

一个创新的强大的SQL语句调优工具

2018年6月23日

香港, 2018年 6月23日 – Tosska Technologies Limited(Tosska), 一家专注于提供数据库和SQL相关性能优化和改进解决方案的公司,今天宣布其首个用于提高 Oracle ® SQL 性能的”一键式机器调优”产品的增强版本,Tosska SQL Tuning Expert (TSE™) 1.5.0 版本面市。

SQL调优对于每个dba来说都是一个经典问题。调优SQL语句就是找到执行SQL语句的最快路径。为了调优SQL语句,你需要了解数据库体系结构,并深入了解SQL调优技能。

Tosska 的 CEO, KaMing Ng 兴奋的说到:“自2017年12月Tosska SQL Tuning Expert (TSE™)首次发布以来,我们每天都能看到该产品的持续增长的下载量。人们为TSE™在日常SQL调优需求中给他们带来的方便和功能感到兴奋。他们中的许多人与我们分享了他们在使用该产品收获的成功案例,有真实的案例,SQLs的性能提高了21倍以上!很多情况下,TSE™给出了DBA们从未想过的解决方案,如果不使用该产品的话。多亏了该产品背后创新的专有人工智能(AI)引擎,它可以探索到大多数DBA仅凭经验无论如何都不会想到的罕见的SQL替代方案。”

“今年早些时候,我们发布了一个新的SQL调优解决方案,名为Tosska SQL Tuning Expert Pro (TSE Pro™),它是TSE™系列的专业版本,它可以做到不需要修改程序的源代码,就完成对SQL调优,提高SQL的性能,并且它还提供了索引建议功能。但是随着TSE™的巨大成功,我们不会停止改进我们的TSE™产品线。这就是我们今天发布最新增强版TSE™1.5.0的原因。” 吴先生继续说道。

Tosska 的 CTO,Richard To 说:“自从推出TSE™以来,我们收到了很多来自用户的积极反馈。为了不断改进产品的功能和用户体验,我们现在提供了1.5.0通用版。TSE™ 1.5.0 版本支持MERGE语句,并通过生成更多的SQL替代方案来更好地解决问题。现在它还提供了新的绑定变量窗口,并包含了一些较小的bug修复。”

TSE™版本现在可以从Tosska的网站免费下载。详情请访问Tosska网站 www.tosska.com。

   
关于 Tosska
Tosska Technologies是一家专注于为数据库和SQL相关性能优化和改进提供解决方案的公司。我们的使命是通过我们的新技术帮助用户消除障碍。此外,Tosska是世界上为数不多的专注于使用人工智能技术解决各种数据库性能问题的公司之一。我们的目标是帮助客户减少硬件投资; 提高他们的数据库应用程序服务水平,利用我们的创新技术,为更多的战略活动腾出人力资源。更多信息请访问www.tosska.com 或发邮件至 enquire@tosska.com。

新闻和媒体咨询
KaMing Ng
Chief Executive Officer
Tosska Technologies Limited
电话: +852-28248420
邮件: enquire@tosska.com

All Trademarks mentioned on this Site are the property of their respective owners.

Tosska 软件技术有限公司宣布Tosska SQL Tuning Expert Pro (TSE Pro™) for Oracle® 2.0.8版面市

将自动SQL调优技术带到新的高度

2018 年 12 月 20 日

香港,2018年12月20日 – Tosska Technologies Limited (Tosska),一家专注于提供数据库和SQL相关性能优化和改进解决方案的公司,今天宣布其用于提高 Oracle ® SQL 性能的”一键式机器调优”产品的高级版本,Tosska SQL Tuning Expert Pro (TSE Pro™)  2.0.8 版本面市。

SQL 调优对于每个 DBA 都是一个经典问题,它需要非常深入的了解SQL调优知识。借助 Tosska SQL Tuning Expert Pro (TSE Pro™),DBA们终于拥有了终极的SQL 调优工具,简单的一键调优即可轻松应付日常的调优工作。TSE Pro™的索引顾问还可以帮助 DBA 探索使用索引,进一步提高 SQL 性能的可能性,同时为所有涉及的SQL提供良好的工作负载平衡。

Tosska 的 CEO, KaMing Ng 说到:”持续改进产品是Tosska的一项重要的研发指导。尽管我们收到了许多关于TSE Pro™产品的积极反馈,我们仍在不断寻找突破,为进一步改进它而努力。新发布的TSE Pro™ 版本提供了一个增强的调优知识库,与之前的版本相比,它支持的Hints数几乎增加了一倍,将自动SQL调优技术推向了一个新的高度。基于Hints-injection-based的SQL调优,它创造了一个新的标准,这是市场上其他工具无法实现的。支持Hints的数量增加意味着可以改进更多有问题的 SQL,在实际测试的结果显示,即便是非常简单的 SQL 语句,也有机会在各种环境中得到改进。”

Tosska 的 CTO,Richard To 说到:“我们一直敞开心扉,倾听全球用户的反馈。因此,在 TSE Pro ™ 版本 2 中,我们添加了一个新的模块”Tune Top SQL”,以帮助用户从 SGA 和 AWR 提取高工作负载的 SQL 语句到‘Top SQL Repository’中,并将其存储在本地 PC 中。对于DBA来说,它是一个非常有用的方法,它可以识别有问题的SQL语句,而不需要遍历数千行程序源代码。每个识别出的问题SQL语句都可以通过单击SQL Repository窗口的顶部菜单按钮进行调优。并且它与Tune SQL模块紧密集成,以简化从问题SQL的识别到SQL优化的流程。用户还可以对特定的SQL语句制定任意配注,作为后续操作的提醒。”

TSE Pro™版本2现已可以从Tosska的网站上免费试用下载。详情请访问Tosska网站 www.tosska.com。

 
关于 Tosska
Tosska Technologies是一家专注于为数据库和SQL相关性能优化和改进提供解决方案的公司。我们的使命是通过我们的新技术帮助用户消除障碍。此外,Tosska是世界上为数不多的专注于使用人工智能技术解决各种数据库性能问题的公司之一。我们的目标是帮助客户减少硬件投资; 提高他们的数据库应用程序服务水平,利用我们的创新技术,为更多的战略活动腾出人力资源。更多信息请访问www.tosska.com 或发邮件至 enquire@tosska.com。

新闻和媒体咨询
KaMing Ng
Chief Executive Officer
Tosska Technologies Limited
电话: +852-21501987
邮箱: enquire@tosska.com

All Trademarks mentioned on this Site are the property of their respective owners.

揭示CBO的力量

揭示甲骨文数据库基于成本的SQL优化器的强大功能的示例

用户拥有需要很长时间才能执行的SQL语句;实际上SQL并不是很复杂,但它有一个非常复杂的执行计划。

Mimic SQL text :
  SELECT TO_CHAR(SYSDATE, ‘yyyy-mm-dd’) AS STAT_DATE,
SYSDATE AS STAT_TIME,
X.TABLE_NAME,
NVL(X.NUM_ROWS, 0) AS TABLE_ROWS,
NVL(ROUND(X.NUM_ROWS * X.AVG_ROW_LEN / 1024, 2), 0) AS TABLE_SIZES,
Y.CREATED AS CREATE_TIME,
Z.COMMENTS AS TABLE_COMMENT,
H .COL_CNT
FROM ALL_TABLES X,
ALL_OBJECTS Y,
ALL_TAB_COMMENTS Z,
(SELECT H .TABLE_NAME, COUNT(1) AS COL_CNT
FROM ALL_TAB_COLS H
WHERE H.OWNER = ‘TOSSKA’
GROUP BY H .TABLE_NAME) H
WHERE X.TABLE_NAME = Y.OBJECT_NAME
AND X.TABLE_NAME(+) = Z.TABLE_NAME
AND X.TABLE_NAME = H.TABLE_NAME
AND Y.OBJECT_TYPE IN (‘TABLE PARTITION’, ‘TABLE’)
AND X. OWNER = ‘TOSSKA’
AND Y. OWNER = ‘TOSSKA’
AND Z. OWNER = ‘TOSSKA’
ORDER BY X.TABLE_NAME

执行计划:
以下部分计划步骤列出了总共214个执行计划步骤中的10%。

用户将SQL输入到Tosska SQL Tuning Expert for Oracle中,并按Tune开始探索是否只潜在有来自Oracle的更好的查询计划。 用户回到他的日常工作中,让计算机代他完成余下的调优工作。 最后,在一小时内找到了5个更好的SQL替代计划。

产品亮点
Tosska SQL Tuning Expert配备了一个人工智能引擎,可以针对有问题的SQL尝试最有效的Hints注入组合。 引擎可以深入探索Oracle CBO在在线SQL优化阶段无法发现的任何隐藏的良好执行计划,但这些好计划实际存在于SQL语句的计划空间中。


基准结果:
原始SQL需要14分7秒。
注入提示的最佳替代SQL是SQL 45,仅需4秒。
SQL45的运行速度比原始SQL快99倍。

Oracle CBO生成的查询计划的观察
Tosska SQL Tuning Expert是一个基于提示注入的SQL调优工具,无需重写用户的SQL。 因此,注入SQL语句的各种提示以及Oracle生成的相应查询计划都是Oracle SQL优化器可以为SQL语句提供的潜在查询计划。
让我们回顾一下那些生成的查询计划以及为什么Oracle在开始时找不到最佳查询计划的原因。

第一个观察:
原始SQL的成本是1330,但SQL 130,SQL 135和SQL 45的成本都低于原始SQL的成本,为什么Oracle无法获得这些低成本计划?
原因:
Oracle无法探索它可以在短时间内生成的所有潜在查询计划,否则它将需要更长的时间来优化所指定的SQL,而这可能无法以不能预见的更好的查询计划完全补偿的。

第二个观察:
SQL 127和SQL 129的成本比原始SQL高3倍,但速度比原始SQL快得多,这意味着这两个SQL的成本估算异常错误。
原因:
这是数据库SQL优化器中使用的成本估算算法的局限性。 从理论上讲,市场上没有100%准确的SQL成本估算算法可以处理各种环境,对于像上述SQL语句这样复杂的SQL语句尤其如此。

结论:
Oracle拥有市场上最复杂的SQL优化器。 Oracle有很多更好的查询计划可以让您的SQL语句更快地运行。 因此,当您考虑升级硬件或云服务支出时,都应首先探索Oracle SQL优化器为SQL语句提供的潜在能力,而您所需要的只是一个能够揭示Oracle SQL优化器潜在能力的正确工具。

Tosska SQL Tuning Expert (TSE™) ® for Oracle®

Tosska SQL Tuning Expert Pro (TSE Pro™) for Oracle®