查看: 2200|回复: 4

代码优化

[复制链接]
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:19:54ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22
发表于 2009-12-25 10:39 | 显示全部楼层 |阅读模式
insert /*+ append nologging */ into tmp_dm_account
    select a.id as account_id,
           nvl(a.accountnumber, '-') as account_no,
           nvl(decode(c.source_event, 'D', '-', c.account_name),'-') as account_name,
           nvl(a.accountstatus, '-') as account_status,
           nvl(decode(b.source_event, 'D', 0, b.account_type_id), 0) as account_type_id,
           nvl(decode(b.source_event, 'D', '-', b.account_type_name),'-') as account_type_name,
           nvl(decode(b.source_event, 'D', '-', b.description),'-') as account_type_desc,
           a.source_event,
           nvl(decode(c.source_event, 'D', '-', c.last_modified),to_date('00010101','yyyymmdd')) as last_update_datetime
      from tmp_gaa_account a
      left join tmp_billing_account c on a.id = c.account_name
      left join tmp_gaa_account_type b on a.accounttypecode = b.account_type_name;


tmp_gaa_account 表200万数据,tmp_billing_account 表0数据,tmp_gaa_account_type表0数据。
查询的时候还是蛮快的,但是插入的时候很慢,看看哪里有问题?是不是字段用了很多函数 转换上花了很多时间?
论坛徽章:
9
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51蛋疼蛋
日期:2011-08-09 14:26:55ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:19奥迪
日期:2013-09-12 15:57:042014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09
发表于 2009-12-25 10:42 | 显示全部楼层
查询快,插入慢,那就慢

使用道具 举报

回复
论坛徽章:
113
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:42:50现任管理团队成员
日期:2011-05-07 01:45:08ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36蛋疼蛋
日期:2011-07-24 22:25:332012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25
发表于 2009-12-25 10:46 | 显示全部楼层
首先,hint错了,没有nologging这个hint。
nologging是写在后面的。

使用道具 举报

回复
认证徽章
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
发表于 2009-12-25 10:58 | 显示全部楼层
查询快是因为你只看到前面的N条数据,而插入需要所有数据。

另外,看看执行计划,确保不是nest loop

使用道具 举报

回复
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:19:54ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22
 楼主| 发表于 2009-12-25 11:07 | 显示全部楼层
恩 查看了执行计划 是hash连接的。
看来是数据库服务器机性能问题。

使用道具 举报

回复

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

本版积分规则 发表回复

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