【发布时间】:2018-07-16 08:11:43
【问题描述】:
我有这个 SQL 查询,它首先从一个相对较短的表中选择一个数字,然后用于另一个选择,这次是从一个非常大的表中,某些信息使用第一个表中的代码。仅一个选择需要 30 多分钟,我需要优化,因为我必须运行 300 个像这样但具有不同 SWNAME 的选择。我会很感激你能给我的任何提示和技巧。谢谢 !
SELECT SWOBJECTID
FROM MBR_INST_PRODUCTS
WHERE SWPRODRELEASEID IN
(SELECT SWPRODRELEASEID
FROM ORO_PPY_OPTIONS
WHERE SWNAME LIKE 'Nov Flexibil Offer:Net Unlimited for 1MON')
AND rownum <2;
【问题讨论】:
-
为什么是
like而不是SWNAME = 'Nov Flexibil Offer:Net Unlimited for 1MON'? -
SWNAME like 'Nov Flexibil Offer:Net Unlimited for 1MON'和SWNAME = 'Nov Flexibil Offer:Net Unlimited for 1MON'完全一样 -
Over 300 of these queries in a run- 您能否编辑您的问题以添加有关运行内容的更多详细信息?例如,您可能不需要 300 个查询(也许单个查询就可以完成工作),因此调整每个单独的查询可能不是正确的方法。另外,“非常多的时间”是什么意思?两个表上都有哪些索引?执行计划是什么?请更新您的问题以添加这些额外的详细信息,以帮助我们更好地为您提供帮助。 -
我编辑了问题并放置了索引和其余部分。
标签: sql database oracle optimization query-optimization