查看: 6309|回复: 13

[FAQ] SQL优化,求高手优化该SQL语句

[复制链接]
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
跳转到指定楼层
1#
发表于 2011-11-20 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 南宫雅治。 于 2011-11-20 14:30 编辑

select service_num,subscription_id from ucs_subscription where
customer_id in(select customer_id from ucs_subscription where subscription_id = :1 and active_date< =to_date(:2,'yyyymm')
                      and
                      inactive_date> to_date(:3,'yyyymm')) and active_date<=to_date(:4,'yyyymm')and inactive_date>to_date(:5,'yyyymm');






运行后得出ORA-01555错误啊··
ora-01555 caused by SQLstatement below(SQL ID:18``)···怎么改写
论坛徽章:
17
2008新春纪念徽章
日期:2008-02-13 12:43:032014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2013-12-18 09:29:13奥迪
日期:2013-09-12 15:57:04凯迪拉克
日期:2013-08-26 22:55:57红旗
日期:2013-08-15 13:57:06茶鸡蛋
日期:2013-05-29 11:38:412013年新春福章
日期:2013-02-25 14:51:24ITPUB季度 技术新星
日期:2012-02-16 14:53:162012新春纪念徽章
日期:2012-01-04 11:51:22
2#
发表于 2011-11-20 14:43 | 只看该作者
呵呵 有用的信息 要么是你没写 要么是 被你截断掉了(ORA-01555的完整报错信息)

自助者天助

使用道具 举报

回复
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
3#
 楼主| 发表于 2011-11-20 14:51 | 只看该作者
maclean 发表于 2011-11-20 14:43
呵呵 有用的信息 要么是你没写 要么是 被你截断掉了(ORA-01555的完整报错信息)

自助者天助

``我没写··0 0!

(SQL ID:18yj8dmkf0phc, Query Duration=10363 sec, SCN:0x0b20.179c84d7)

使用道具 举报

回复
论坛徽章:
17
2008新春纪念徽章
日期:2008-02-13 12:43:032014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2013-12-18 09:29:13奥迪
日期:2013-09-12 15:57:04凯迪拉克
日期:2013-08-26 22:55:57红旗
日期:2013-08-15 13:57:06茶鸡蛋
日期:2013-05-29 11:38:412013年新春福章
日期:2013-02-25 14:51:24ITPUB季度 技术新星
日期:2012-02-16 14:53:162012新春纪念徽章
日期:2012-01-04 11:51:22
4#
发表于 2011-11-20 14:54 | 只看该作者
select service_num, subscription_id
  from ucs_subscription
where customer_id in
       (select customer_id
          from ucs_subscription
         where subscription_id = :1
           and active_date < = to_date(:2, 'yyyymm')
           and inactive_date > to_date(:3, 'yyyymm'))
   and active_date <= to_date(:4, 'yyyymm')
   and inactive_date > to_date(:5, 'yyyymm')

这SQL写的。。。

发下执行计划
  1. explain plan for  service_num, subscription_id
  2.   from ucs_subscription
  3. where customer_id in
  4.        (select customer_id
  5.           from ucs_subscription
  6.          where subscription_id = :1
  7.            and active_date < = to_date(:2, 'yyyymm')
  8.            and inactive_date > to_date(:3, 'yyyymm'))
  9.    and active_date <= to_date(:4, 'yyyymm')
  10.    and inactive_date > to_date(:5, 'yyyymm')
  11.    

  12. select * from table(dbms_xplan.display());
复制代码

使用道具 举报

回复
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
5#
 楼主| 发表于 2011-11-20 14:57 | 只看该作者
maclean 发表于 2011-11-20 14:54
select service_num, subscription_id
  from ucs_subscription
where customer_id in

Plan hash value :259169680  执行计划··挺难打出来···0 0擦···

使用道具 举报

回复
论坛徽章:
17
2008新春纪念徽章
日期:2008-02-13 12:43:032014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2013-12-18 09:29:13奥迪
日期:2013-09-12 15:57:04凯迪拉克
日期:2013-08-26 22:55:57红旗
日期:2013-08-15 13:57:06茶鸡蛋
日期:2013-05-29 11:38:412013年新春福章
日期:2013-02-25 14:51:24ITPUB季度 技术新星
日期:2012-02-16 14:53:162012新春纪念徽章
日期:2012-01-04 11:51:22
6#
发表于 2011-11-20 14:58 | 只看该作者
南宫雅治。 发表于 2011-11-20 14:57
Plan hash value :259169680  执行计划··挺难打出来···0 0擦···

怎么打印 我上面都已经给你命令了。。。

自助者天助

使用道具 举报

回复
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
7#
 楼主| 发表于 2011-11-20 15:00 | 只看该作者
maclean 发表于 2011-11-20 14:58
怎么打印 我上面都已经给你命令了。。。

自助者天助

0 0大哥我错了··

使用道具 举报

回复
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
8#
 楼主| 发表于 2011-11-20 15:01 | 只看该作者
maclean 发表于 2011-11-20 14:58
怎么打印 我上面都已经给你命令了。。。

自助者天助

关键是,我这是linux的系统,但是操作机器是AIX的系统···oracle 的版本也不一样·我怕有偏差

使用道具 举报

回复
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
9#
 楼主| 发表于 2011-11-20 15:12 | 只看该作者
maclean 发表于 2011-11-20 14:58
怎么打印 我上面都已经给你命令了。。。

自助者天助

-----------------------------------------------------------
id                operation                 name                   rows                 bytes       cost(%cpu)   time
pstart                     pstop
--------------------------------------------------------------
0        select statement                                                                                   64(100)


1         table access by local index rowid     usc_subscription   769k  37m  31 (0)  00:00:01

使用道具 举报

回复
论坛徽章:
4
复活蛋
日期:2012-02-27 15:37:32双黄蛋
日期:2012-04-06 15:06:08奥运会纪念徽章:自行车
日期:2012-07-12 15:54:25优秀写手
日期:2014-03-22 06:00:12
10#
 楼主| 发表于 2011-11-20 15:14 | 只看该作者
maclean 发表于 2011-11-20 14:58
怎么打印 我上面都已经给你命令了。。。

自助者天助

大师···真的好难打··我也怕您看不懂···您看·光看语句能不能改写下···

使用道具 举报

回复

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

本版积分规则 发表回复

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