如何让SQL语句运行得更慢…但让用户的体验更好(Oracle)?

您的最终用户可能会不断抱怨他们的数据库应用程序的某些功能运行缓慢,但您可能会发现,在当前的Oracle和硬件配置中,这些SQL语句已经达到了它们的最大速度。除非您愿意升级硬件,否则可能没有办法改进SQL。有时,为了让用户感觉更好,您不必调优SQL以使其运行得更快,而只需调优SQL以使某些应用程序的SQL语句运行得更慢。

这是一个示例,该SQL用于显示表Emp_sal_hist和表Employee在满足某些条件后的信息。该SQL是在线查询执行的,用户必须等待至少5秒,才能在单击鼠标后在屏幕上显示任何数据。

select * from employee a,emp_sal_hist c
where a.emp_name like ‘A%’
and a.emp_id=c.sal_emp_id
and c.sal_salary<1800000
order by c.sal_emp_id

下面是SQL的执行计划和执行统计,提取全部79374条记录花费了10.41秒,第一条记录返回的反应时间为5.72秒。该查询显示了EMPLOYEE和EMP_SAL_HIST表的MERGE JOIN,在将其合并到最终结果之前,对两个相对应的表进行排序操作。这就是用户必须等待至少5秒才能看到屏幕上显示的内容的原因。

作为条件“a.emp_id = c.sal_emp_id”,我们知道“ORDER BY c.sal_emp_id”和“ORDER BY a.emp_id”是等效的,因为SQL语法改写不能强制对该SQL的执行计划进行指定的操作,所以我添加了一个优化器提示/*+ INDEX(@SEL$1 A EMPLOYEE_PK) */来减少“order by a.emp_id”的排序时间。

SELECT   /*+ INDEX(@SEL$1 A EMPLOYEE_PK) */ *
FROM   employee a,
     emp_sal_hist c
WHERE  a.emp_name LIKE ‘A%’
   AND a.emp_id = c.sal_emp_id
   AND c.sal_salary < 1800000
ORDER BY c.sal_emp_id

虽然在新的执行计划中,总体运行时间增加了3秒,但响应时间从5.72秒减少到1.16秒,因此用户可以更快的看到屏幕上第一页信息。我相信大多数用户不在乎是否还有3秒可以返回所有79374条记录。这就是为什么在管理用户期望时,SQL调优更像一门艺术而不是科学。
这种改写可以由Tosska SQL Tuning Expert Pro for Oracle自动实现。

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

如何购买Tosska产品?

欢迎来到Tosska的世界!我们很高兴您决定与我们合作,让我们使用我们的Tosska解决方案来帮助您。

请选择您想要的产品(包括其选项),并将其添加到购物车。当您完成购物时,请前往购物车进行最终审核,并确保它们是您需要的,然后选择“继续结帐”。在结帐页面,请填写订单详细信息。请仔细检查并确保您的电子邮件地址正确无误,因为这将是我们向您发送Tosska产品链接以供下载(如果适用)和产品许可证密钥的地方。

成功处理付款后,您将收到一封电子邮件,其中包含您的订单详细信息以及下载您选择的 Tosska 产品(如果适用)的链接。请注意,此链接最多允许 3 次下载(如果您的下载不成功且需要重试),并且将在 30 天后过期。另外将单独向您发送一封单独的电子邮件,其中包含此订单所特有的许可证密钥。您需要此许可证密钥才能正确安装和运行 Tosska 产品。请注意,这两封电子邮件中包含的信息是严格保密的,您不应将其透露给其他人。请把它们放在一个安全的地方。

欢迎来到Tosska大家庭,享受您的Tosska产品!

下载时遇到“提交被拒绝,令牌无效”错误怎么办

有些用户在尝试从我们的网站下载软件时,可能会遇到“提交被拒绝,令牌无效”的错误。如果您有此问题,请尝试清除您的浏览器缓存的图像和文件,然后重试。见下文:

如果您已经做了以上操作,仍然遇到相同的错误,那么请通过我们的网站提交支持请求。

想下载免费试用版吗?

我们知道没有什么比在您自己的环境中进行产品试验更令人信服的了。因此Tosska免费提供所有Tosska产品试用30天。只需选择您想要试用的产品,输入您的电子邮件地址(请确保您输入了正确的电子邮件地址),并按下“提交”按钮,下载将立即开始,试用密钥和Site Message会以电子邮件形式发送到您所输入的电子邮件地址。在安装试用产品时,您将需要这两个信息。

欢迎下载试用!

如何免费试用?

我们都知道,没有什么比在您自己的环境中进行产品试验更令人信服的了。因此Tosska为所有的Tosska产品提供免费试用 – Tosska In-memory Maestro (TIM™)产品提供免费试用30天,需要免费试用密钥;其他产品不需免费试用密钥,永久免费试用。

如果你选择试用TIM™,您就会看到试用密钥的请求表单(与激活版相比,试用版的局限性也将列出供您参考)。

您所需要做的就是填写您的电子邮件地址,确保电子邮件地址是正确的,并按下提交按钮。然后免费试用版将立即开始下载。另一封包含免费试用密钥的电子邮件将按您输入的电子邮件地址发送给您。安装试用产品时,您将需要这个免费试用密钥。就是这么简单!

祝你试用产品愉快!

如何提交支持请求/错误报告?

欢迎您通过发送电子邮件至 support@tosska.com 或填写支持请求表单向我们提交支持请求/ bug报告。不过,在递交申请前,我们建议你采取以下措施:

  • 确保首先阅读 FAQ 页面和产品包含的文档
  • 确保您使用最新版本可以重现该问题。

提交支持请求/ bug报告时 :

  • 请选择正确的产品版本并填写正确的授权证号.
  • 请使用“简短描述”来突出你所报告的问题。
  • 如果您正在报告一个bug,请在“详细信息”部分填写包括问题的描述、重现问题的步骤以及预期的结果。如果可能,还请包括使用的任何数据创建脚本和sql。或者,服务器的描述。
  • 如果在使用该产品时出现意外异常错误,将自动显示异常窗口。您可以单击“创建技术支持文件”选项来生成支持包。或者,您也可以随时在主窗口右上角的菜单中选择“技术支持文件”来生成支持包。然后通过电子邮件support@tosska.com将支持包作为附件发送给我们。